现在的位置: 首页 > 综合 > 正文

Guarded Wait VS Busy Wait

2013年01月22日 ⁄ 综合 ⁄ 共 1071字 ⁄ 字号 评论关闭

                                                   Guarded Wait   VS  Busy Wait

Guarded Wait

意思是“被阻挡而等待”,大致上是线程使用wait等待,等到被notify或者被notifyAll后再次执行测试条件的测试方法。使用wait等待的时间,其实是停止在等待区间里停止执行,所以不会浪费到java执行环境的处理时间。

******等待的范例******                                                    *******唤醒的范例*******

while(!ready){                                                                      ready = true ;

   wait();                                                                               notifyAll();

}

*******************                                                      *********************

 

Busy Wait

意思是“忙碌的等待”。线程不使用wait等待,而是使用yield(尽可能把优先级让给其他的线程),并不断的测试条件的实现方法。因为等待中的线程也持续的运行着,所以会浪费java虚拟机的时间。yield是Thread类的方法。

 

******等待的范例******                                                    *******唤醒的范例*******

while(!ready){                                                                        ready = true ;

   Thread.yield();                                                                              

}

*******************                                                      *********************

抱歉!评论已关闭.