日期:2014-05-16  浏览次数:20565 次

求助,线程的回收
情况如下:
主线程每1分钟创建一个新的线程,新线程随机sleep m秒(无法预先估计它到底sleep多少秒),当然,这个m是有限制的,在1-100之间。主线程运行5小时,就会发生线程号耗尽的情况,因为进程内最大的线程数是255.
据我所知,pthread_join是用来回收结束线程的,但是join函数会阻塞主线程,即会等m秒,等待子线程结束以后才能回收。



问题是:
1.有什么办法在不阻塞主线程的情况下,对已经结束的线程进行一次回收么-------或者说最好是在创建线程以后马上执行一个函数,在不阻塞主线程情况下,还能在子线程结束后自动对该线程进行回收?

2.顺便问一下,一个线程能否在结束时就彻底结束自己,而不需要再被回收呢?

------解决方案--------------------
http://baike.baidu.com/view/400319.htm 中的 线程分离属性
------解决方案--------------------
detach
设置分离线程。