下面是我原來在CSDN論壇上看到的一個貼子,涉及到同步,wait(),notify()等概念的理解,我試著根據原來的一些回復和Think in java上的相關概念將wait()和notify()這兩個方法剖析了一下,歡迎指教.
問題如下:
//分析這段程序,并解釋一下,著重講講synchronized、wait(),notify 謝謝! class ThreadA { public static void main(String[] args) { ThreadB b=new ThreadB(); b.start(); System.out. synchronized(b)//括號里的b是什么意思,起什么作用? { try { System.out.println("Waiting for b to complete..."); b.wait();//這一句是什么意思,究竟讓誰wait? System.out.println("Completed.Now back to main thread"); }catch (InterruptedException e){} } System.out.println("Total is :"+b.total); } }
class ThreadB extends Thread { int total; public void run() { synchronized(this) { System.out.println("ThreadB is running.."); for (int i=0;i<100;i++ ) { total +=i; System.out.println("total is "+total); } notify(); } } }