线程类比于人得大脑,进程来实现具体操作
每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。
为了减少系统开销,从进程中演化出了线程。
线程存在于进程中,共享进程的资源。
线程是进程中的独立控制流,由环境(包括寄存器组和程序计数器)和一系列的执行指令组成。
线程概述
线程的概念
每个进程有一个地址空间和一个控制线程
线程和进程的比较
调度线程是CPU调度和分派的基本单位。
拥有资源:
进程是系统中程序执行和资源分配的基本单位。
线程自己一般不拥有资源(除了必不可少的程序计数器,一组寄存器和 栈),但它可以去访问其所属进程的资源,如进程代码段,数据段以及 系统资源(已打开的文件,I/O设备等)。
系统开销
同一个进程中的多个线程可共享同一地址空间,因此它们之间的同步和通信的实现也变得比较容易。
在进程切换时候,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置;而线程切换只需要保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作,从而能更有效地使用系统资源和提高系统的吞吐量。
并发性
不仅进程间可以并发执行,而且在一个进程中的多个线程之间也可以并发执行。