父类的synchronized子类是有效的

来源:3-3 线程安全性-原子性-synchronized

慕设计7465963

2018-11-18

老师你好,我用的是jdk1.8,测了下父类的synchronized子类是有效的
父类:
public class SyncTestParent {

public synchronized void sysc1() {
    try {
        System.out.println("into sysc1");
        Thread.sleep(5000);
    } catch (Exception e) {

    }
}

}
子类
public class SyncTestChild extends SyncTestParent {

public static void main(String[] args) {
    SyncTestChild child = new SyncTestChild();
    for (int i = 0; i <5; i++) {
        Thread thread = new Thread(() -> {
            child.sysc1();
        });
        thread.start();
    }
}

}
测试结果是每隔5秒打印一次的

写回答

1回答

Jimin

2018-11-18

你好,如果父类的某个方法是synchronized的,而子类覆盖了这个方法,那么默认情况下子类这个方法不是synchronized的,不覆盖的话当然没事,因为本身就是走的父类里的方法

0
1
慕设计7465963
嗯,可能是我理解有误,谢谢老师
2018-11-18
共1条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程