在pthread_detach
的手册页中,我读到当任何线程被分离时,那么在线程终止时它会将其资源释放回系统。
什么是线程资源?它是该线程使用的内存的一部分,如果是,那么该内存是进程地址空间的一部分。我试图理解这一点,但我得到了它。
那么可连接线程呢,什么时候线程释放它的资源?在pthread_join
时或在终止或处理时?
在pthread_cancel
命令中释放资源时。
答案 0 :(得分:3)
每个线程都会占用操作系统中的一些簿记资源,以及用户空间内存中自己的执行堆栈。线程被销毁时会释放这些资源,这可能在几种情况下发生,例如:
pthread_join
在可连接线程上调用时返回main
正常返回或exit
被调用exec
。但是,可以退出正在运行main
的线程并使其他已分离的线程继续运行。为此,您必须在主线程中调用pthread_exit
。