当前位置:编程学习 > JAVA >>

JAVA Socket 多线程

在项目中遇到一个问题,要同时用socket给2000多台机器发送一串指令,要求高效率,请问有没有什么好的办法,大概怎么实现? --------------------编程问答-------------------- 从常规应用上讲,一个线程也可以实现,一个一个地发就是了。 --------------------编程问答--------------------
引用 1 楼 trocp 的回复:
从常规应用上讲,一个线程也可以实现,一个一个地发就是了。
能不能用线程实现同时发送,就是给这这一台发的时候,能不能同时和另一台通信,由于对多线程编程不熟悉,不知怎么实现,谢谢。 --------------------编程问答-------------------- 可以考虑线程池,Java自带的线程池,从安全的角度看,比自己写方便多了,只要调用就好了。
所以,建议楼主用Java jdk中的线程池,提示关键字:Executor --------------------编程问答-------------------- 楼主只是发一串指令的话应该数据量不大,可以用线程池或者自己固定的开几个线程来发就行了,数据量不大而且要高效的最好用udp不要用socket的tcp --------------------编程问答-------------------- BIO多线程,考虑线程池控制并发程度。
NIO,可以提供线程使用率,但是,编程复杂度稍大。
UDP有丢包的可能,看具体需求是否要有丢包重传机制。
多播(MulticastSocket),也是比较可行的方案。 --------------------编程问答-------------------- 推荐楼主TCP 的BIO或者NIO的通信。
其中,NIO效率最高,但是,编程复杂度也加大。
BIO编程简单,唯一注意的是,要用线程池控制并发量。 --------------------编程问答-------------------- 用MINA 做做
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,