我试图弄清楚 NPTL 在退出时如何清理分离线程的资源(堆栈空间等)。可加入线程很容易,调用 pthread_join 等待特定线程退出,然后回收其资源。没问题,但是 NPTL 怎么知道一个分离的线程已经退出呢?有谁知道或至少知道谁会知道?
谢谢, 丰富
我试图弄清楚 NPTL 在退出时如何清理分离线程的资源(堆栈空间等)。可加入线程很容易,调用 pthread_join 等待特定线程退出,然后回收其资源。没问题,但是 NPTL 怎么知道一个分离的线程已经退出呢?有谁知道或至少知道谁会知道?
谢谢, 丰富
线程函数返回后,NPTL会检查线程是否被分离,如果分离则直接释放线程的所有内容,如果加入则将线程控制块(TCB)留给pthread_join释放TCB。
有关详细信息,http: //raison.gegahost.net/?p=91可能会有所帮助。