Java多线程在使用的时候会有很多语句需要我们具体的学习,在这其中wait()就是其中的一个。当然我们需要不断的努力学习才能掌握这一个语句的应用,下面的代码会对你学习Java多线程有所帮助。
1 2 class ThreadA { 3 public static void main(String[] args) { 4 ThreadB b=new ThreadB(); 5 b.start(); 6 System.out.println("b is start...."); 7 synchronized(b){//同步,请求获得对象锁,如果是子线程先进入,则这里阻塞 8 try { 9 System.out.println("Waiting for b to complete..."); 10 b.wait();//获得对象锁后,可以调用对象的wait方法,这个时候释放对象锁,自线程取得对象锁,进入工作 11 System.out.println("Completed.Now back to main thread"); 12 }catch (InterruptedException e){} 13 } 14 System.out.println("Total is :"+b.total); 15 } 16 17 } 18 19 class ThreadB extends Thread { 20 21 int total; 22 public void run() { 23 24 synchronized(this){ //同步,请求获得对象锁,如果是主线程先进入,则这里阻塞 25 System.out.println("ThreadB is running.."); 26 for (int i=0;i<100;i++ ){ 27 total +=i; 28 System.out.println("total is "+total); 29 } 30 notify(); 31 } 32 } 33 } 34