可结合线程和可分离线程的区别
在任意一个时间点上,一个线程是可结合的,或者是可分离的。一个可结合的线程是可以被其他进程回收资源或者杀死的,在其他线程被回收之前,他的存储器资源(如栈)是不会被回收的。一个可分离的线程是不可以被其他线程回收资源或者杀死的,他的存储器资源在他终止的时候可以由系统自动释放。
创建线程后的默认状态
在一个进程中创建线程,默认的状态是可结合的,这时候,线程必须等待原有的进程结束后才算是线程终止,这个时候才能被回收他的资源。我们一般不关心线程的终止状态,所以一般在创建线程结束以后,就可以把线程设置成分离状态,这时候的线程不被其他线程所等待,当线程运行结束终止以后,他会自动释放自己所占用的资源。
为什么要将线程设置成分离状态
为了在使用线程的时候,避免线程的资源得不到正确的释放,从而导致了内存泄漏的问题。所以要确保进程为可分离的的状态,否则要进行线程等待已回收他的资源。