我正在阅读有关绿色线程的信息,并且能够理解这些线程是由VM或在运行时创建的,而不是由操作系统创建的,但我无法理解以下陈述
当绿色线程执行阻塞系统调用时,不仅该线程被阻塞,而且进程内的所有线程都会被阻塞。
谁能解释一下怎么可能?
这其实很简单。
"绿色线程"在 VM 内部以编程方式实现,它调度其中的 CPU 和内存,就像真正的操作系统在操作系统级别的进程和线程之间调度这些资源一样。
但从操作系统的角度来看,只有一个线程——虚拟机本身,所以当它进行阻塞系统调用(代表它在内部管理的"绿色线程"之一)时,这个单线程自然会被阻塞,并且无法做任何事情,包括调度"绿色线程",所以世界也停止了。