84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
光阴似箭催人老,日月如移越少年。
每个线程初始化的时候都是 c=new C(),锁住的是不同的对象。
class Example{ public static void main(String arr[]){ C c = new C(); ThreadB th1=new ThreadB("th1",c); ThreadB th2=new ThreadB("th2",c); } } class ThreadB implements Runnable{ C c; Thread thread; ThreadB(String name,C c){ //c=new C(); this.c=c; thread=new Thread(this,name); thread.start(); } public void run(){ if(thread.getName().equals("th1")){ for(int i=0;i<3;i++)c.t1(false); c.t1(true); } if(thread.getName().equals("th2")){ for(int i=0;i<3;i++)c.t2(false); c.t2(true); } System.out.println("end"); } } class C{ synchronized void t1(boolean boo){ if(boo){ notify(); return; } System.out.println("t1"); notify(); try{ wait(); }catch(InterruptedException exc){System.out.println(exc);} } synchronized void t2(boolean boo){ if(boo){ System.out.println();notify();return; } System.out.println("t2"); notify();//notifyAll()也没效果; } }
这两个线程wait的对象C不是同一个,是感知不到对方的锁的
每个线程初始化的时候都是 c=new C(),锁住的是不同的对象。
这两个线程wait的对象C不是同一个,是感知不到对方的锁的