3

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

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

谁能解释一下这怎么可能?

4

1 回答 1

3

这其实很简单。

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

但是从操作系统的角度来看,只有一个线程——VM本身,所以当它进行阻塞系统调用(代表它内部管理的“绿色线程”之一)时,这个单一线程自然会被阻塞,并且不能做任何事情,包括安排“绿色线程”,所以“世界也停止了”。

于 2017-01-21T19:14:41.297 回答