1700451353
1700451354
}
1700451355
1700451356
//资源B
1700451357
1700451358
static class B{
1700451359
1700451360
public synchronized void b1(A a){
1700451361
1700451362
String name=Thread.currentThread().getName();
1700451363
1700451364
System.out.println(name+“进入B.b1()”);
1700451365
1700451366
try{
1700451367
1700451368
//休眠1秒,仍然持有锁
1700451369
1700451370
Thread.sleep(1000);
1700451371
1700451372
}catch(Exception e){
1700451373
1700451374
//异常处理
1700451375
1700451376
}
1700451377
1700451378
System.out.println(name+“试图访问A.a2()”);
1700451379
1700451380
a.a2();
1700451381
1700451382
}
1700451383
1700451384
public synchronized void b2(){
1700451385
1700451386
System.out.println(“进入B.b2()”);
1700451387
1700451388
}
1700451389
1700451390
}
1700451391
1700451392
public static void main(String args[]){
1700451393
1700451394
final A a=new A();
1700451395
1700451396
final B b=new B();
1700451397
1700451398
//线程A
1700451399
1700451400
new Thread(new Runnable(){
1700451401
1700451402
public void run(){
[
上一页 ]
[ :1.700451353e+09 ]
[
下一页 ]