package com.neutron.t07;
import java.util.concurrent.TimeUnit;
/**
* 问题:一个线程是否是否可以调用另一个同步方法呢?
*/
public class T07 {
public static synchronized void set2() {
get2();
System.out.println("hello set2");
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static synchronized void get2() {
System.out.println("hello get2");
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
运行结果:
hello get2
hello set2
*/
public static void main(String[] args) {
set2();
}
}
/*
过程解说:
1.1个synchronized修饰的方法是可以调用另一个synchronized修饰的方法
同一个线程已经拥有了某个对象的锁,在当前线程再申请时依旧会获得当前对象的锁,也就是说synchronized的锁是可重入的。
*/
thread07 - 同步方法中调用同步方法
最新推荐文章于 2021-02-25 10:11:33 发布