进程与线程

1. 基本概念

线程的引入是为了增加并发度,线程成为了程序执行流的最小单位,也是基本的CPU执行单元

进程是除CPU之外的系统资源的分配单元,一个进程里可以并发多个线程

2. 它们的区别

进程具有独立的地址空间,而线程没有;

进程切换运行环境时,系统开销大,而一个进程内的线程间切换系统开销小;

线程间可以共享内存地址空间,所以线程间的通信不需要操作系统干预

3. 两种线程

用户级线程:应用程序看得见的线程,用户级线程的好处是非常高效,不需要由用户态切换到内核态,但并发效率不高。

内核级线程:只有操作系统能看得见,由于内核级线程才是真正处理机分配的单位,所以多个内核级线程有利于提高并发度。

4. 多线程模型

多对一:多个用户级线程对应一个内核级线程,不用切换到内核态,但是一旦内核态线程阻塞,整体阻塞

一对多:并发度高了,但是进程管理开销大

多对多:集二者所长

5. 进程状态

原文地址:https://www.cnblogs.com/Kinghao0319/p/14447259.html