当前位置: 技术问答>linux和unix
线程分离状态问题
来源: 互联网 发布时间:2016-12-22
本文导语: 线程被分离,是什么意思啊? | pthread_detach(threadid)函数的功能是使线程ID为threadid的线程处于分离状态,一旦线程处于分离状态,该线程终止时底层资源立即被回收;否则终止子线程的状态会...
线程被分离,是什么意思啊?
|
pthread_detach(threadid)函数的功能是使线程ID为threadid的线程处于分离状态,一旦线程处于分离状态,该线程终止时底层资源立即被回收;否则终止子线程的状态会一直保存(占用系统资源)直到主线程调用pthread_join(threadid,NULL)获取线程的退出状态。
除非是一个分离的线程,否则在线程退出时,它是不会释放它的资源的。pthread_detach函数将线程分离,它设置线程的内部选项来说明线程退出后,线程的存储空间可以被重新收回。分离线程退出时不会报告它们的状态。没有分离的线程是可接合的,而且被另一个线程为它们调用pthread_join或者整个进程退出之前,这些线程不会释放它们所有的资源。 pthread_join函数会使调用者等待待定的线程退出。为防止内存泄漏,长时间运行的程序最终应该为每个线程调用pthread_detach或pthread_join
除非是一个分离的线程,否则在线程退出时,它是不会释放它的资源的。pthread_detach函数将线程分离,它设置线程的内部选项来说明线程退出后,线程的存储空间可以被重新收回。分离线程退出时不会报告它们的状态。没有分离的线程是可接合的,而且被另一个线程为它们调用pthread_join或者整个进程退出之前,这些线程不会释放它们所有的资源。 pthread_join函数会使调用者等待待定的线程退出。为防止内存泄漏,长时间运行的程序最终应该为每个线程调用pthread_detach或pthread_join