package 对象及变量的并发访问2;
/**
* synchronized锁重入
* 关键字synchronized拥有重入锁的功能,即在使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时
* 是可以得到该对象的锁的,这就证明了synchronized方法/快内部调用本类凡人其他synchronized方法/快时,是永远可以得到锁的。
*
* “可重入锁”是指自己可以再次获得自己的内部锁,如:一个线程获得了某个对象锁,此时这个对象锁还没有释放,当其再次想要获得
* 这个对象锁时还是可以获取的。
*/
class ServerT217{
synchronized public void ServerT217(){
System.out.println("Server1");
Server2T217();
}
synchronized private void Server2T217() {
System.out.println("Server2");
Server3T217();
}
private void Server3T217() {
System.out.println("Server3");
}
}
class MyThreadT217 extends Thread{
@Override
public void run() {
ServerT217 serverT216=new ServerT217();
serverT216.ServerT217();
}
}
class RunT217{
public RunT217(){
MyThreadT217 myThreadT217=new MyThreadT217();
myThreadT217.start();
}
}
public class T2107 {
public static void main(String[] args) {
RunT217 runT217=new RunT217();
}
}
synchronized锁重入——T2107
最新推荐文章于 2024-04-13 11:46:03 发布