目录
进程是一个正在执行的程序, 该程序是可以控制线程的。 单个进程中可以包含多个控制线程的功能。
进程是:
- 资源分配单位;
- 调度(调度)单元。
传统上,进程只有一个控制线程。
如果我们将上述两个概念分开,并允许在一个进程中有多个控制线程,我们就得到了线程。也就是说,进程被用来将资源分组在一起;线程是被调度(计划) dispatched(scheduled) 在CPU上执行的实体。
概述
线程是现代操作系统中CPU利用率的基本单位。也称为轻量级进程lightweightprocess(LWP). 。它由线程 ID、程序计数器、寄存器集合和栈组成。
传统的进程只能控制单个线程。 现代的进程可以控制多个线程,意味着可以同时做多个任务。
多线程:
- 允许在同一进程中有多个线程。
- 同一个进程中的两个线程之间可以共享代码段、数据段和其他操作系统资源,如打开文件和信号。
- 但是,一个进程中的每个线程都有一个私有线程Context(包括CPU寄存器集和其他状态信息)和一个私有堆栈。
- 是进程的一个实体;
- 是被系统独立调度和分派的基本单位;
- 自己基本不拥有资源,只拥有在运行过程中必不可少的资源(e.g. 程序计数器、寄存器、栈);
- 可与同属于一个进程的其他线程共享进程所拥有的资源;
- 可以创建和撤销另一个线程;
- 同一进程中的多个线程可以并发执行;
- 一个进程一般拥有若干线程,至少需要一个线程&#