进程:资源管理的单元
线程:CPU调度的单元,执行单元。
线程的作用是提高了系统的并发能力和吞吐量,但增加了线程调度的成本,因为改变线程状态和切换线程上下文。这些工作都是JVM通过操作系统内核中的TCB(Thread Control Block)来实现的,开销比较大。
怎样解决这个问题呢?于是出现了协程。
协程:比线程更轻量级,一个线程拥有多个协程。最重要的是,协程不是由操作系统管理,而是由程序所控制(在用户态执行),这样的开销远小于线程。
实现协程的语言有:Lua, Go, Python
鸣谢:协程