尝试在单独的线程而不是主线程

时间:2016-12-13 11:14:24

标签: java

我有一个客户端应用程序,用于连接,写入和读取远程服务器中的一些数据。当我在单个()线程中执行所有这些活动并且始终从服务器写入和读取数据时,这很好。我有100个远程服务器,只要我正在进行连接,一个接一个地使用100个服务器单独写入和读取,我能够成功完成所有3个活动而没有任何问题。但是当我通过在循环中创建100个线程并执行相同的连接,写入和读取以并行完成100个站点执行来实现多线程时,我面临着问题。我能够连接和写入但是在读取InputStream 时它会抛出响应代码为401的IOException。如果我在连接每个服务器时进行5到6秒的睡眠,我就可以连接,写入和读取成功。我在主线程中进行了长时间的睡眠,这样所有100个线程都将成功退出执行。 所有100台服务器都有不同的网址或IP 。所有上面提到的Connect,Write和Read方法都在一个实现Runnable的类中。因此,在循环中创建创建100个线程将拥有自己的这些方法的副本,并且不涉及共享资源。你能指导我哪里错了吗?

0 个答案:

没有答案