任何人都可以幫助我闡明HttpClient
在多線程中的行爲嗎?多線程和併發上下文中的HttpClient行爲
當我通過下面的代碼創建HttpClient
對象,我應該保持物體全球整個應用程序生命週期(該方法被提及在HttpClient
DOC),或者我應該創建每次當我想執行HTTP連接(獲取和郵政)?
1)
Static HttpClient httpclient = HttpClientBuilder.create().build(); //so we can use this object in everywhere.
2)
HttpClient httpclient = HttpClientBuilder.create().build(); //do this every time when we want to establish http connect.
確保Http連接不會彼此阻塞並確保它們可以同時運行的最佳方法是什麼?
我的建議是第二個,因爲如果你使用靜態變量對象的併發訪問可能會拋出異常或意外的結果。在Jmeter(性能/負載測試工具)中,他們爲不同的線程創建不同的對象。但是,如果線程的數量很少,線程只做只讀,那麼你可以使用帶有同步方法的靜態變量。如果我說錯了,請糾正我。 –