簡體   English   中英

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

[英]Is it bad to have threads waiting in java?

我有一個基本上包含的線程

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

實際上,隊列只會有一些東西放在上面,但重要的是,當事情發生時,數據庫查詢會以正確的順序發生。 原子引用很好,因為我只關心上一個數據庫查詢的結果。

把它放在一個線程上是不好的做法,基本上都是等待一整天?

一般來說,等待線程並不壞,這是常見的做法,通常是最好的解決方案。

由於答案非常簡短,只需快速建議: 如果您的線程沒有必要立即做出反應 ,您可以考慮將Thread.yield添加到無限等待循環中,具體取決於它運行的系統,可以節省一些不必要的CPU -用法。 請參閱Oracle文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM