我的一个详尽的JUnit在重复过程中被写入阻塞。
这个流程就像在FTP上被动检索一样:
JUnit ----------- MOVE_REQ (dst port 4104) --------------------> Server
loop {
JUnit <------ SEND_REQ with the object (dst port 1104) ---------- Server
JUnit --------------- SEND_RSP (same connection) --------------> Server
}
JUnit <-------- MOVE_RSP (same connection as first one) ----------- Server
所有链都由JUnit同时在多个线程中同时执行。 JUnit端的服务器(参加SEND_REQ的服务器)是一个包含5个线程的池,与另一端的服务器完全相同。
在调试中,我可以看到服务器挂起了一个16384字节的OutputStream.write中的SEND_REQ。 另一方面,jUnit的服务器卡住了只有6个字节的InputStream.read来读取流。
我想到的第一件事是我没有关闭所有连接,因此我在缓冲区上有任何泄漏。但是我已经用TcpView验证了它,它很好,当时只有一个连接:
知道为什么会这样吗?