在pthread_detach的手册页中,我读到,当任何线程被分离时,然后在线程终止时,它将其资源释放回系统.
什么是线程资源?是它是该线程使用的内存的一部分,如果是的话,则该内存是进程地址空间的一部分.我试图理解这一点,但我确实做到了.
那么,可连接线程呢,线程何时释放其资源?在pthread_join时还是在终止或进程时?
在pthread_cancel命令中释放资源时.
解决方法:
每个线程都会在操作系统中消耗一些簿记资源,并且会在用户空间内存中消耗其自己的执行堆栈.销毁线程时会释放这些资源,这种情况可能在多种情况下发生,例如:
> pthread_join在可连接线程上调用时返回,
>分离线程的入口函数返回,
> main正常返回或调用exit,
>由于收到未处理的信号,该过程终止,
> exec成功调用.
但是,可以退出正在运行主线程的线程,而让其他分离的线程运行.为此,您必须在主线程中调用pthread_exit.