日期:2014-05-18  浏览次数:20708 次

多线程老是会长眠不醒??
我写了一个多线程的程序,开了30个线程,每个线程会到网络上下载一些网页然后做些处理然后保存成xml文件,有一个主线程控制它们,分配任务给它们。

在我的机器上运行没有问题,可是换到另一台服务器上运行个一天就会发现它停在那里不动了,我打印出一些信息发现有2,3个线程还在运行状态,但是它们就一直不动了,因为我每一步处理都会输出东西出来,而此时屏幕上不会再有任何工作线程打印的东西出来,只有主线程在定期的判断它们是否结束,它们为什么停止不动了呢?

我也设了connect的timeout和read的timeout,不知道它们为什么会停止不动?各位老大帮我分析分析应该怎么解决这个问题啊?提一下思路也可以啊,多谢啊

------解决方案--------------------
应该是等待线程,得不到资源或cpu时间,检查一下,你线程请求的资源是不是正在被其它线程或程序使用没有释放呀
------解决方案--------------------
是否应该在线程上加一个优先级判断标志,每次获得cpu的线程-1, 其它的线程+1。呵呵。

------解决方案--------------------
估计是死锁了! 看看有没有锁
------解决方案--------------------
是不是可能是网络问题呢?
如果程序在进行中。其中一个网络有问题。断线了。你的程序有自动重新连接的么?