我有一个不断从队列中弹出的线程,它会休眠并写入"队列为空,睡眠时间为500毫秒"如果队列为空,则进入日志文件。因此,如果我的服务已经运行很长时间,则日志将是:
队列为空,睡眠时间为500ms
队列为空,睡眠时间为500ms
队列为空,睡眠时间为500ms
...
...
...
避免这种情况的常见策略是什么?显然我可以设置一个布尔值来检查"队列是否为空,睡眠"已经记录但它似乎不是一个最佳的解决方案。必须有一些模式或策略来处理这个问题。希望你理解我知道我的问题,我的问题听起来有点愚蠢。
答案 0 :(得分:0)
不必要地停止并且可以避免轮询队列。使用wait / notify。摆脱死区延迟和CPU浪费。