簡體   English   中英

套接字讀取超時時java lib如何處理接收到的數據?

[英]How does java lib deal with the received data when socket read timeout?

如果套接字讀取超時(連接未關閉)並且后來 os 接收到數據,java lib 如何處理數據?

例如,連接池中有兩個 tcp 連接/套接字。 一個線程讀取超時並返回(釋放連接到連接池),然后另一個線程使用相同的連接; 那么另一個 thead 可能會收到第一個線程的響應數據。 我認為這是不對的。 當兩個線程輪流使用同一個連接時,java lib(eg.httpclint)如何防止另一個線程接收到前一個線程請求的響應數據?

謝謝!

這取決於您在此處接收的數據類型。 如果嚴格基於哪個線程將處理接收到的數據,那么您需要確保使用某種 GUID 和線程 ID 組合來標識數據,以便發送方和接收方知道消息已被消耗或丟失。 理想情況下,您的邏輯不應該依賴於底層線程,除非該邏輯是特定於操作系統層的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM