引
线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。
一个标准线程的构成包括以下四个部分:
- 线程的ID;
- 当前指令指针(PC);
- 寄存器集合;
- 堆栈组成。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。
线程的三种运行状态:
- 就绪
就绪状态就是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机。
- 阻塞
阻塞状态是指线程在等待一个时间(如某个信号量),逻辑上不可执行。
- 运行
运行状态是指线程占有处理机正在运行。
用多线程只有一个目的,那就是更好的利用cpu资源,因为所有的多线程代码都可以用单线程来实现。当然对于反应“多角色”的程序代码,最起码每个角色都要给一个线程,否则无法模拟实际场景,自然不能说用单线程去实现:比如最常见的“生产者,消费者模型”。
很多人都对其中的一些概念比较模糊,如同步、并发等,简单做一下解释,以免产生误会。
- 多线程:改程序(一个