线程在java中等待是不是很糟糕?

时间:2014-07-10 12:57:36

标签: java multithreading

我有一个基本上包含

的主题
while(true) {
  current = BlockingQueue.take();
  results = queryDatabaseWith(current);
  AtomicReference.set( results );
}

实际上,队列只会有一些东西放在上面,但重要的是,当事情发生时,数据库查询会以正确的顺序发生。原子引用很好,因为我只关心上一次数据库查询的结果。

将这个放在线程上是不好的做法,基本上都是等待一整天?

1 个答案:

答案 0 :(得分:4)

通常情况下等待线程并不坏,这是常见做法,通常是最好的解决方案。

由于答案很短,只需快速建议: 如果您的线程没有必要立即做出反应,您可以考虑将Thread.yield添加到无限等待循环中,具体取决于它运行的系统,可以节省一些不必要的CPU使用量。 See the Oracle documentation