并发编程之多线程

什么是线程

在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程

线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于CPU),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一条流水线。

所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是CPU上的执行单位。

多线程(即多个控制线程)的概念是,在一个进程中存在多个线程,多个线程共享该进程的地址空间,相当于一个车间内有多条流水线,都共用一个车间的资源。例如,北京地铁与上海地铁是不同的进程,而北京地铁里的13号线是一个线程,北京地铁所有的线路共享北京地铁所有的资源,比如所有的乘客可以被所有线路拉

线程与进程的区别

  • 进程是资源单位,线程是执行单位

  • 一个进程内至少有一个线程

  • 进程之间一般是不共享,进程之内的线程数据一般是共享

  • 开进程开销大,开线程开销小

多线程应用举例

文本编辑器软件: 数据共享+并发效果

  • 用户输入

  • 处理数据

  • 保存数据

Last updated