一、线程的实现
我们学过操作系统的肯定都知道:
- 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。
- 线程:是进程的一个执行单元,是进程内可调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。
线程是比进程更轻量级的调度执行单元,线程的引入,可以把一个进程的资源分配和执行调度分开。各个线程既可以共享进程资源,又可以独立调度(线程是CPU调度的基本单元)
线程的实现有3中方式:
-
使用内核线程实现
由于内核线程的支持,每个轻量级进程都成为一个独立的调度单元,即使有一个轻量级进程在系统调用中阻塞了,也不会影响整个进程继续工作。
缺点:- 由于是基于内核线程实现的,所以各种线程操作,如创建、析构及同步,都需要进行系统调用。而系统调用的代价相对较高,需要在用户态(User Mode)和内核态(KernelMode)中来回切换。
- 其次,每个轻量级进程都需要有一个内核线程的支持,