【Java并发编程的艺术】进程 VS 线程 VS 协程、上下文切换、避免死锁
1、进程、线程、协程
分析:从定义、开销、环境、包含关系来展开说明。
1、定义
进程: 资源分配的基本单位;
线程: 轻量级进程,操作系统调度和执行的基本单位;
协程: 轻量级线程,调度由用户控制。
2、开销
进程: 每个进程都有自己独立的代码和数据空间,程序上下文切换开销较大,因此就有了线程
线程: 同一个进程的各个线程是共享代码和数据空间的,因此线程之间切换的开销较小,但是切换需要在用户态和内核态之间,因此就有了协程;
协程: 轻量级线程,涉及到的是函数的切换,协程不是由操作系统内核所管理的
原创
2021-06-02 16:07:07 ·
216 阅读 ·
1 评论