zoukankan      html  css  js  c++  java
  • 用synchronized同时修饰父类和子类,线程是安全的。即对象锁可重入

    public class SyncDubbo {
    static class Main {
    public int i = 10;

    public synchronized void operationSup() {
    try {
    i--;
    System.out.println("Mind print i = " + i);
    Thread.sleep(100);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }

    static class Sub extends Main {
    public synchronized void operationSub() {
    try {
    while (i > 1) {
    i--;
    System.out.println("sub print i = " + i);
    Thread.sleep(100);
    this.operationSup();
    }
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }

    public static void main(String[] args) {
    Thread t1 = new Thread(new Runnable() {
    public void run() {
    Sub sub = new Sub();
    sub.operationSub();
    }
    });

    t1.start();
    }
    }

    运行结果:

    sub print i = 9
    Mind print i = 8
    sub print i = 7
    Mind print i = 6
    sub print i = 5
    Mind print i = 4
    sub print i = 3
    Mind print i = 2
    sub print i = 1
    Mind print i = 0

    有不懂的,或者更好的见解可以随时交流!每天都会看的。
  • 相关阅读:
    vue-cli3使用cdn引入
    修饰器
    go strconv
    【BZOJ 5125】小Q的书架
    【NOI 2009】诗人小G
    后缀数组
    点分治
    四边形不等式
    【NOIP 2015】Day2 T3 运输计划
    【NOIP 2016】Day1 T2 天天爱跑步
  • 原文地址:https://www.cnblogs.com/java-xz/p/7070741.html
Copyright © 2011-2022 走看看