绿色线程中的I / O阻塞

时间:2017-01-20 19:26:28

标签: multithreading virtual-machine green-threads

我正在阅读有关绿色线程的内容,并且能够理解这些线程是由VM创建的,还是在运行时创建的,而不是由操作系统创建的,但我无法理解以下语句

  

当绿色线程执行阻塞系统调用时,不仅该线程被阻塞,而且进程中的所有线程都被阻止。

任何人都可以解释一下它是如何可能的吗?

1 个答案:

答案 0 :(得分:3)

实际上这很简单。

“绿色线程”以编程方式在VM内部实现,它在它们之间调度CPU和内存,就像真实操作系统在OS级进程和线程之间调度这些资源一样。

但从操作系统的角度来看,只有一个线程 - 虚拟机本身,所以当它进行阻塞系统调用时(代表其内部管理的“绿色线程”之一),这个单线程自然而然阻止了,什么也做不了,包括安排“绿线”,所以“世界也停止了”。