如大家所了解的,在线程生命期结束时需要终止线程,有两种终止方式:
- 线程完成了自己的工作后正常终止。
- 线程在执行过程中出现了某种错误或由于某种原因被其他线程强行终止。
也有一些系统线程,一旦被建立起来,就一直运行下去,而不再被终止,这类线程一般用于在后台为其他线程提供服务。
实际上,在大多数操作系统中,线程被终止后并不立即释放它所占用的系统资源,只有进程中的其他线程执行了“分离函数”后,被终止的线程才会与资源分离。只要线程尚未释放资源,则仍然可以被其他线程调用,从而使被终止的线程恢复运行。
因此,在操作系统中引入线程后,进程已不再是一个执行实体,而只是资源分配的实体,这时进程扮演的角色是为它包含的多个线程提供资源,一个进程可以包含若涵线程且至少包含一个线程,而一个线程只能属于一个特定的进程。