暂停整个java程序时使用是否危险?

时间:2015-04-09 15:02:20

标签: java loops

好的,我对java编程很陌生,但我确实需要暂停程序执行直到某些事件发生:

while(!isItHappened());
doSomethingAfterItHappend();

避免这种丑陋情况的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

并非真正危险(多亏了先发制人的多任务处理),但浪费资源。使用计数为1的CountDownLatch,例如示例中的startSignal。或者使用Object的{​​{1}}和wait / notify方法深入挖掘并实施您自己的等待机制。

答案 1 :(得分:3)

我比较了CPU的使用情况。

  1. CPU使用率13-15%:

    while(!isItHappened());
    doSomethingAfterItHappend();
    
  2. CPU使用率0-1%:

    synchronized(itHappend) {
        itHappened.wait();   
    }
    doSomething();
    
  3. 所以第二段代码显然更好。非常感谢duckstep。