进程和线程的痛点

  1. 线程之间的通讯要设计到同步锁
  2. 涉及到线程上下文切换
  3. 涉及到阻塞状态和运行状态切换

协程

协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。

img

最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。

这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。

由于Java的原生语法中并没有实现协程(某些开源框架实现了协程,但是很少被使用),比较多的是python、lua中使用协程

具体了解推荐:

https://blog.csdn.net/zheng199172/article/details/88800275

https://www.liaoxuefeng.com/wiki/897692888725344/923057403198272