2013-03-07 67 views
0

我想知道NPTL如何在退出时清理分离线程的资源(堆栈空间等)。可连接的线程很简单,有一个pthread_join 的调用,它等待特定的线程退出并回收其资源。没问题,但是 NPTL如何知道分离的线程已经退出?有谁知道或至少知道谁会知道?分离线程的线程库清理

感谢, 丰富

回答

0

线程函数返回后,NPTL将检查线程是否被分离,如果分离,它会直接释放线程的一切,如果加入,就会留下线索控制块(TCB)到pthread_join以释放TCB。

了解详情,http://raison.gegahost.net/?p=91可能会有帮助。

+0

啊,这就是我一直在寻找的。因此,pthread_create被传递给executor函数,并且这个函数被一个辅助函数包装,并且辅助函数被传递给克隆系统调用。辅助函数负责清理分离的线程。非常感谢。 – 2013-03-07 17:43:52