Object lock = new ObJect();
syncronized(lock){
System.print.out.ln("a被占用");
}
synchronized(lock){
System.print.out.ln(“b被占用”);
}
如果有两段线程同时for循环跑这一段,那么输出结果一定是有序的 ababab…,说明当执行a代码时,b被卡住,当b开始执行,a被卡住。
相当于当a资源被占用,b资源才能被释放,b被占用a才能释放。
Object lock = new ObJect();
syncronized(lock){
System.print.out.ln("a被占用");
System.print.out.ln("b被占用");
}
synchronized(lock){
System.print.out.ln(“b被占用”);
System.print.out.ln(“a被占用”);
}
假如2条线程同时for循环跑这段代码,当b被占用时要去拿a,a被占用时要去拿b,最后互相等待。