补全:用条件变量做一个开关
本节的东西:
Box(cap) Condition 保护的有界队列:put 满了等、get 空了等;等 = cond.wait_for(条件),等的时候把锁交出去、醒来再拿回;改完 notify_all
run_pc(cap, n) 一个生产者放 0..n-1、一个消费者取 n 个,交回消费者拿到的顺序补全 Switch:wait_on() 等到开关打开才返回;turn_on() 打开并叫醒所有人。三条线程先 wait_on,主线程睡 0.05 秒再 turn_on,看三条都在打开之后返回(记录打开前有几条已经返回)。
全部评论