wait(alias2); 改成 alias2.wait();
synchronized是保留字,不是包里的.结果为没有任何输出. 因为
synchronized(alias1)
  alias2.wait();===
synchronized(this)
  this.wait();
程序一直在等其他线程来用notify()唤醒.

解决方案 »

  1.   

    確實沒有這個 method . wait(alias2);寫錯了.
    synchronized 是keyWord,不在那個包里
      

  2.   

    wait是默认继承下来的,其可接受的参数不能未对象实例,只能是表示时间的间断int,具体参考api了.synchronized是java关键字,兄弟你这样就去面试了??另外,出去wait这句,这个程序好像没什么意义,同步锁定自己。。呵呵...这个变态考题
      

  3.   

    我记得好象是wait(z),我以为wait(z)和vc里的WaitForSingleObject差不多,而synchronized(可能是synchroniz)锁定资源z,那样,应该是打印'waiting done'
      

  4.   

    public final void wait() throws InterruptedException
    调用这个函数而进入等待状态的线程,必须由notify()或者notifyAll()来唤醒,否则一直在等待状态public final void wait( long timeout, int nanos ) throws InterruptedException
    调用这个函数而进入等待状态的线程,除了用上面方法唤醒之外,当等待时间超过了timeout的值时,线程会被自动唤醒,注意,timeout表示的是毫秒public final void wait( long timeout, int nanos )throws InterruptedException
    这个方法,与上一方法相同,只是增加了一个变量nanos,表示在除了timeout表示的毫秒之外,在附加一个0-999999的纳秒附加量