2
在手册页pthread_detach
我读到,当任何线程分离时,然后在线程终止时,它释放其资源回到系统。当线程释放其资源
什么是线程资源?它是否是该线程所使用的内存的一部分,如果是这样的话,则内存是进程地址空间的一部分。我试图理解这一点,但我知道了。
那么可联接线程呢,线程什么时候释放它的资源呢?在pthread_join
时,或在终止或过程的时间?
当在pthread_cancel
命令中释放资源时。
在手册页pthread_detach
我读到,当任何线程分离时,然后在线程终止时,它释放其资源回到系统。当线程释放其资源
什么是线程资源?它是否是该线程所使用的内存的一部分,如果是这样的话,则内存是进程地址空间的一部分。我试图理解这一点,但我知道了。
那么可联接线程呢,线程什么时候释放它的资源呢?在pthread_join
时,或在终止或过程的时间?
当在pthread_cancel
命令中释放资源时。
每个线程都会在操作系统中消耗一定数量的簿记资源,并在用户空间内存中占用其自己的执行堆栈。当线程被销毁这些资源被释放,可几个条件,比如下发生:在可连接的线程调用时
pthread_join
回报,main
回报正常或exit
被调用,exec
被成功调用。但是,退出正在运行main
的线程并保持其他正在运行的分离线程是可能的。为此,您必须在主线程中调用pthread_exit
。
那么'pthread_cancel'和一个线程返回并且没有被主线程加入呢? –
@Abhiteshkhatri:取消对讨论无关紧要。您仍然需要加入该线程,特别是如果您想知道取消是否有效。有关详细信息,请参见[手册](http://man7.org/linux/man-pages/man3/pthread_cancel.3.html)。 –