gpt4 book ai didi

java - 生产者和消费者线程挂起

转载 作者:行者123 更新时间:2023-11-29 06:00:58 24 4
gpt4 key购买 nike

所以这是我第一次涉足线程,到目前为止它让我发疯。我的问题似乎是导致我的使用者线程挂起的某种同步错误。我查看了其他代码以及几乎所有我能找到的代码,但我找不到我的错误是什么。在 Eclipse 中执行的代码与在命令行中通过 javac 执行的代码之间似乎也存在差异。

意图 - 使用有界缓冲区(具有 1000 个槽)创建和消耗 1,000,000 个 double 。仅使用通知和等待。

问题 - 在 Eclipse 中,消费者线程偶尔会挂起大约 940,000 次迭代,但其他时间会完成。在命令行中,消费者线程总是挂起。

最佳答案

Wait() 方法可以以虚假方式中断(即没有通知),引用 here .所以你需要替换所有的 if (condition) { wait(); }while (condition) { wait(); }。也许这就是原因。

关于java - 生产者和消费者线程挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com