synchronized(b)就是对对象b加锁,让其必须在同步条件下执行下面的代码,比如不让同时有两个此类的对象同时执行此段代码。 b.wait(); 是让这个对象b等候,知道收到notify()才接着执行下面操作

解决方案 »

  1.   

    synchronized(b)//括号里的b是什么意思,起什么作用?对b加锁起什么作用?感觉是以B做为信号量。b.wait();//这一句是什么意思,究竟让谁wait?感觉是让MAIN线程等待。如果此程序b在synchronized(b)之前运行完将发生死锁。
      

  2.   

    同意楼上两位的看法,我感觉这段程序等价于
         synchronized   public void x() {                  
             try{
                 System.out.println("Waiting for b to complete...");
                 wait();
                 System.out.println("Completed.Now back to main thread");
             }catch(InterruptedException e) {}
    }
    只不过现在是让main线程在等待,直到收到notify()信号才继续运行,而我这段程序则是在调用X()方法的时候才wait