java notify 的作用_java 为什么notify和notifyAll都不起作用?
叮當貓咪
每個線程初始化的時候都是 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()也沒效果;? ? }}
總結
以上是生活随笔為你收集整理的java notify 的作用_java 为什么notify和notifyAll都不起作用?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于python的证件照_20行代码教你
- 下一篇: 星巴克兼职一小时多少钱?(今年)