从编程语言语用,由Scott谁阻止谁阻止同步?
同步可以通过旋转(也称为 忙等待)或通过阻断来实现。
在忙等待同步,一个线程运行循环,其中它保持 重新评估一些条件,直到该条件为真(例如,直到 消息队列非空变或共享变量达到一个特定 值)-presumably作为一些其他 线程的行动的结果,在其他一些核心上运行。
在阻止同步(也称为基于调度程序的同步), 等待线程自愿放弃其核心到其他线程。在这之前,它会在与同步条件相关的某个数据结构中留下一个注释。在未来的某个时间点使条件成立的线程将会找到笔记并采取措施使被阻塞的线程再次运行。
这个同步机制为什么叫做“阻塞”?
谁阻止谁?
谢谢。