最多同时几个

最多同时几个

本节的东西: Gate(n) 最多 n 个同时在里面:Semaphore(n);顺便用一把小锁维护 inside / peak(峰值) run_gate(n, workers, hold) w

阅读更多 →
多放了一次

多放了一次

用 Semaphore(2) 限流,某处不小心 release 了三次而只 acquire 了两次。结果【0】。

阅读更多 →
和锁的差别

和锁的差别

Semaphore(1) 和 Lock 都是「一次一个」,真正的差别是【0】。

阅读更多 →
信号量是什么

信号量是什么

信号量(Semaphore)一句话说是【0】。

阅读更多 →
补全:用条件变量做一个开关

补全:用条件变量做一个开关

本节的东西: Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_

阅读更多 →
补全:等 N 个人到齐

补全:等 N 个人到齐

本节的东西: Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_

阅读更多 →
补全:用 while 手写 wait

补全:用 while 手写 wait

本节的东西: Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_

阅读更多 →
补全:用 wait_for 写 get

补全:用 wait_for 写 get

本节的东西: Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_

阅读更多 →
生产者消费者的顺序

生产者消费者的顺序

本节的东西: Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_

阅读更多 →
醒来先干什么

醒来先干什么

被 notify 叫醒之后,正确的做法是【0】。

阅读更多 →