采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
wait会释放互斥锁让出CPU,当被signal唤醒时,如果无法立即拿到锁,此时这个线程是处于什么状态?是自旋等待吗(毕竟已经唤醒了呢,会占用CPU资源吗)?
producer伪代码片段如下:
lock(); while(num > MAX){ wait(); } num += 1; signal(); sleep(10); //不让被唤醒的消费线程立即拿到锁 unlock();
这里的伪代码是不成立的哈,使用条件变量需要在两个线程或者以上的线程数的环境去运行,如果这里面等待了的话,那肯定不会执行到后面的唤醒的逻辑。
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.4k 17
1.7k 14
1.2k 13
1.4k 11