可重入锁

2018-12-23  本文已影响0人  好奇害死猫o

一个同步方法可以调用另一个同步方法,一个线程已经拥有了某个对象的锁,再次申请 的时候依然会得到这个对象的锁。synchronized的锁就是可重入锁,存在一种情况,子类调用父类的同步方法。

import java.util.concurrent.TimeUnit;

public class T {
    synchronized void m() {
        System.out.println("m start");
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("m end");
    }
    
    public static void main(String[] args) {
        new TT().m();
    }
    
}

class TT extends T {
    @Override
    synchronized void m() {
        System.out.println("child m start");
        super.m();
        System.out.println("child m end");
    }
}


运行结果如下

child m start
m start
m end
child m end
上一篇下一篇

猜你喜欢

热点阅读