【发布时间】:2018-09-02 14:50:41
【问题描述】:
我会尽量准确和概括地描述问题:
我必须通过 TCP(套接字)向 254 个可能的设备“192.168.1.2-255”发送一个流,因为我需要确保信息能够顺利到达,并在尽可能短的时间内完成。
如果我一次执行一行,超时时间为 200 毫秒(非常少),则该过程需要 51 秒。
-
如果我在不同的线程中执行每一行,只需要一两秒,但会创建 254 个线程加上程序本身拥有的线程,尽管它们只持续一秒。
李>
我要发送的对象是基本的,这将是一个类似的示例:
class Usuarios implements Serializable {
private int id,ip;
private String name;
//Constructor, Getters and Setters, etc...
}
有没有办法解决这个问题而不必在每个周期等待一分钟,或者运行超过 250 个线程?
澄清:也许形式是这样的,但是执行这么多线程似乎太多了,即使是一秒钟的周期,每10次重复一次。 我已经看过 java.NIO 库,但它没有说明如何发送序列化对象。
已经非常感谢你了。
【问题讨论】:
-
我看到它们使用 Runnable 对象运行。它与线程有什么区别?
标签: java sockets networking serialization