跟其他的一样,线程也是有生命周期的,当程序最开始运行的时候,系统会创建一个主线程,主线程结束表示这个程序运行的结束。
线程的状态:就绪,运行,阻塞,结束。
就绪:除了CPU以外的资源都已经具备了,得到cpu以后就可以运行。
运行:线程正常工作的状态。
阻塞:除了cpu以外还缺少其他的资源,正在等待系统分类缺少的资源。
结束:结束线程的运行。
线程的分离特性:
线程是否分离不影响其的运行,只是影响该线程结束以后资源是否会被收回,该线程具有分离属性则该线程结束以后系统会回收其内存,堆栈及其他系统资源,如果是非分离的线程则这些资源不会被回收,会浪费系统资源。有时候也会被称为僵尸线程。
默认生成的线程是非分离的线程,我们可以在创建线程的时候设置分离属性,也可以在线程运行的时候自我分离,调用pthread_join(pthread_id);即可分离线程。