大家好,有个关于semaphore概念想请教厘清
就是 semaphore 的 non busy-waiting 版本
也就是 block/wait 版本的 semaphore,
为什么讲义和课本上都有一段说
"即便是 Block/Wakeup + queue 的方式,也顶多是将busy-waiting由定义端
移到制作端"
我不懂的是 Block/Wakeup + queue 的方式不是已经排除了busy-waiting了吗?
为何又会说是"表面上"呢?
wait(S) {
S.value = S.value - 1;
if(S.value < 0) {
add this process to S.list;
block(P);