如何在不删除的情况下避免100%的CPU利用率(true)

zen*_*ngr -1 java multithreading

我正在研究一个我需要一段时间(真实)的系统,其中循环不断地监听队列并增加内存中的计数.

数据不断进入队列,所以我无法避免一段时间(真实)的情况.但自然它会将我的CPU利用率提高到100%.

那么,我怎样才能保持一个活跃的线程来监听队列的尾部并执行一些操作,但同时将CPU利用率降低到100%?

lba*_*scs 10

阻止队列是为此目的而发明的.

另请参见:Java中阻塞队列的优点是什么?

  • @zengr:我们必须看看你的代码.我的想法是*等待*发生一些事情,而不是经常检查它是否已经发生.您只需尽可能快地一遍又一遍地检查队列,从而最大限度地利用资源. (2认同)
  • 如果你正在轮询数据库寻找变化(不知道你正在做什么 - 对于"队列"的坏主意),那么你将不得不"睡觉()"而不是连续轮询. (2认同)