如何解决生产者/消费者问题中临界区内的 while 循环
在课堂上我们有一个理论问题,如果在生产者/消费者问题中将检查缓冲区是空还是满的 while 循环放在临界区中会发生什么。 我试过考虑它,但我似乎无法找到它会导致的任何更改,我的意思是将不必要的代码放在关键部分是不好的,但我仍然不确定如果有的话会产生什么后果。
例如代替:
制作人:
while (true) {
while (Buffer < something)
// Critical Section start:
put data in buffer
// Critical Section ends:
}
消费者:
while (true) {
while (Buffer > something)
// Critical Section start:
remove data from buffer
// Critical Section ends:
}
对此: 制作人:
while (true) {
// Critical Section start:
while (Buffer < something)
put data in buffer
// Critical Section ends:
}
消费者:
while (true) {
// Critical Section start:
while (Buffer > something)
remove data from buffer
// Critical Section ends:
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。