如果套接字读取超时(连接未关闭)并且稍后os接收数据,那么java lib如何处理数据?
例如,连接池中有两个tcp连接/套接字。一个线程读取超时并返回(释放连接到连接池的连接),然后另一个线程使用相同的连接;然后另一个thead可能会收到第一个线程的响应数据。我认为这不对。当两个线程依次使用相同的连接时,java lib(eg.httpclint)如何阻止另一个线程接收先前线程请求的响应数据?
谢谢!
这取决于您在此处收到的数据类型。如果它严格基于哪个线程将处理接收的数据,那么您需要确保使用某种GUID和线程ID组合来识别数据,以便发送方和接收方知道消息已被消耗或丢失。理想情况下,您不应该遇到逻辑依赖于底层线程的情况,除非该逻辑是特定于操作系统层的。