为什么要在循环中调用wait()方法呢?
请高手解释一二

解决方案 »

  1.   

    那是线程同步的需要,当一个线程的执行需要另一个线程的数据准备就绪时,另一个线程的数据还没准备就绪的话,该线程就应该wait
    就好比去银行取钱,当没有空闲的业务受理窗口时,办情的人就要wait,当有有空闲的业务受理窗口时,他就会notify(或notifyAll所有)等待的人
      

  2.   

    wait顾名思义,就是等一件事儿发生,等待一个条件满足,等待一个资源可用,等等...之所以要用wait,举个例子,如果你要上厕所,结果厕所有人,
    一种方法,你每5秒钟过来看一下,里面人出来你就进去,这样你就别干别的事儿了,
    第二种方法,你跟厕所里的人说:出来的时候叫我一下,然后你就干别的去了,不耽误事儿。wait就是第二种方法。
      

  3.   

    wait()方法是在某个对象上,或者类等待某件事情发生
      

  4.   

    关于线程同步举个例子来说~
    我们知道线程都是有CPU轮流执行,当线程被执行时,那个时候就是所谓的时间片,当一个线程的时间片结束时,CPU暂停执行这个线程,另外一个线程将可能被执行.当N个线程访问同一资源时就会出现以下有意思的情况:
    男:嫁给我吧!
    女:你有车有房吗?
    男:我现在还没有钱买房子,车子,给我点时间我一个能有车有房的!
    女:好的,我给你一年的时间. 
    男的出去拼搏了...
    一年后有车有房了,兴奋的来找到那个女的
    男:我现在有车有房了,嫁给我吧!
    女:我已经结婚了.
    男:........这女的就是资源,男的就一线程,这男的离开了,另外一男的可能来访问她,
    除非你锁着那女的,否者太不安全!