我正在阅读有关绿色线程的内容,并且能够理解这些线程是由VM创建的,还是在运行时创建的,而不是由操作系统创建的,但我无法理解以下语句
当绿色线程执行阻塞系统调用时,不仅该线程被阻塞,而且进程中的所有线程都被阻止。
任何人都可以解释一下它是如何可能的吗?
答案 0 :(得分:3)
实际上这很简单。
“绿色线程”以编程方式在VM内部实现,它在它们之间调度CPU和内存,就像真实操作系统在OS级进程和线程之间调度这些资源一样。
但从操作系统的角度来看,只有一个线程 - 虚拟机本身,所以当它进行阻塞系统调用时(代表其内部管理的“绿色线程”之一),这个单线程自然而然阻止了,什么也做不了,包括安排“绿线”,所以“世界也停止了”。