1. 基本概念
线程的引入是为了增加并发度,线程成为了程序执行流的最小单位,也是基本的CPU执行单元
进程是除CPU之外的系统资源的分配单元,一个进程里可以并发多个线程
2. 它们的区别
进程具有独立的地址空间,而线程没有;
进程切换运行环境时,系统开销大,而一个进程内的线程间切换系统开销小;
线程间可以共享内存地址空间,所以线程间的通信不需要操作系统干预
3. 两种线程
用户级线程:应用程序看得见的线程,用户级线程的好处是非常高效,不需要由用户态切换到内核态,但并发效率不高。
内核级线程:只有操作系统能看得见,由于内核级线程才是真正处理机分配的单位,所以多个内核级线程有利于提高并发度。
4. 多线程模型
多对一:多个用户级线程对应一个内核级线程,不用切换到内核态,但是一旦内核态线程阻塞,整体阻塞
一对多:并发度高了,但是进程管理开销大
多对多:集二者所长
5. 进程状态