多线程问题,欢迎讨论,up有分(100分,就100分) 可以试着采用线程回调的方法避免用死循环检测是否有消息。就是在收到消息的时候调用处理消息的方法这方面的问题《Java网络编程》中的线程那章有很好的说明。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以使用ProducerConsumer设计模式。 其实NutShell系列书籍中的《Java网络编程》上讲的很清楚透彻。还有实例,可以好好看看。我喜欢在书店看,^_^ 答案是这样的:无限制的等待必然耗尽CPU的资源,可以用设置信号量来解决即:只有在客户端有消息来的时候才开始等待接受,否则不等待(可以设置等待时间,比如5),超时则退出循环我所说的是在Vc下的解决办法,VC下有WaitForSingleObject 等方法可以使用,Java 下虽然没有消息机制,但是可以自己设定信号量 是不是当发送线程处理玩数据后,跳出循环,然后当有消息到来时再重新调用线程的start()方法开始处理数据,这样就不存在死循环问题了。 一点拙见,请到家批评指正!! 线程一被建立并运行便只会朝着“死”的方向走去,除非你的run()方法里面是个死循环——除非你把整个程序关掉否则是不会被系统回收的。如果你能够很好地利用好几个已建立的线程,一直为你服务,则能够达到运行效率块、节省资源。看样子,线程池是很适合你的要求的。 线程建立-->等待-->运行(或挂起)-->结束 java中关于paint()方法的问题 构造函数不是有么?怎么会找不到呢。 如何知道某个bean的属性列表? 一个正则表达式问题 关于字符串的问题~~~ 小程序找错 ORACLE字符集为AL32UTF8,取数时报错,如何解决? 有关串口读取数据的问题。 使用SESSION BEAN 调用 ENTITY BEAN时的错误 初学者JAVA扫雷小程序求解 请advanced(超越)来拿分 能实现这样的功能吗?
还有实例,可以好好看看。我喜欢在书店看,^_^
无限制的等待必然耗尽CPU的资源,可以用设置信号量来解决
即:只有在客户端有消息来的时候才开始等待接受,否则不等待(可以设置等待时间,比如5),超时则退出循环
我所说的是在Vc下的解决办法,VC下有WaitForSingleObject 等方法可以使用
,Java 下虽然没有消息机制,但是可以自己设定信号量
再重新调用线程的start()方法开始处理数据,这样就不存在死循环问题了。
一点拙见,请到家批评指正!!
看样子,线程池是很适合你的要求的。