我现在的代码是,单个线程向服务器发送指令。使用短连接。既:建立SOCKET,发送一次报文,断开SOCKET。(事实证明此方法非常慢,而且占用端口太多)现在我想改为:建立SOCKET,多线程发送N次报文(N>2W),断开SOCKET。主要对JAVA不熟,不知道如何下手。:(我的问题:
1.如果改为后种方式,那与:建立SOCKET,单线程发送2w次报文是否有区别,区别在哪里?
2.线程间是如何工作的?是排好队一个一个执行么?会不会这里执行一行,那边执行一行?很迷惑。望高人指点。希望快速解决问题。
1.如果改为后种方式,那与:建立SOCKET,单线程发送2w次报文是否有区别,区别在哪里?
2.线程间是如何工作的?是排好队一个一个执行么?会不会这里执行一行,那边执行一行?很迷惑。望高人指点。希望快速解决问题。
方法1: 数据谁产生的,谁负责发送就行,不用考虑什么线程问题
方法2:看看生产者消费者模式。 数据产生视同生产者,数据发送视同消费者 参考这个 http://www.java2000.net/p581
多个线程应该是共用一个接收发送信息的"产品容器"而不是共用socket,socket从这个容器中不断获取要发送的内容边续发送.
至于多长时间重建一次socket,这要看系统本身对socket的最大生命周期的限制,应该小于这个时间,建议最大存活期为30分钟.
总线程数不要超过cpu * 25.