在项目中遇到一个问题,要同时用socket给2000多台机器发送一串指令,要求高效率,请问有没有什么好的办法,大概怎么实现?

解决方案 »

  1.   

    可以考虑线程池,Java自带的线程池,从安全的角度看,比自己写方便多了,只要调用就好了。
    所以,建议楼主用Java jdk中的线程池,提示关键字:Executor
      

  2.   

    楼主只是发一串指令的话应该数据量不大,可以用线程池或者自己固定的开几个线程来发就行了,数据量不大而且要高效的最好用udp不要用socket的tcp
      

  3.   

    BIO多线程,考虑线程池控制并发程度。
    NIO,可以提供线程使用率,但是,编程复杂度稍大。
    UDP有丢包的可能,看具体需求是否要有丢包重传机制。
    多播(MulticastSocket),也是比较可行的方案。
      

  4.   

    推荐楼主TCP 的BIO或者NIO的通信。
    其中,NIO效率最高,但是,编程复杂度也加大。
    BIO编程简单,唯一注意的是,要用线程池控制并发量。