• 启动器的学习


    一、核心思想

      

    二、启动流程

      

    三、依赖关系的代码

      

    四、重入锁的使用

      public class MyLock implements Lock {
        private boolean isLocked = false;
        Thread lockBy = null;
        int lockCount = 0;
        @Override
        public synchronized void lock() {
        Thread currentThread = Thread.currentThread();
        lockBy = Thread.currentThread();
        while (isLocked && lockBy != lockBy){
        try {
          wait();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
      isLocked = true;
      lockBy = currentThread;
      lockCount++;
      }

      @Override
      public synchronized void unlock() {
      if (lockBy == Thread.currentThread()) {
        lockCount--;
        if (lockCount == 0) {
          notify();
        isLocked = false;
        lockCount = 0;
        }
       }
      }
      

    MyLock lock = new MyLock();
    public void a(){
    lock.lock();
    System.out.println("a");
    b();
    lock.unlock();
    }
    public void b(){
    lock.lock();
    System.out.println("b");
    lock.unlock();

    }
  • 相关阅读:
    Nginx配置中运行与启动的详细介绍
    php实现文件上传进度条
    C# 提取逗号分割的字符串
    【sas proc sql】out join
    【SAS NOTE】substr函数
    【sas proc sql】子查询
    【SAS NOTE】数字字符互换
    【SAS NOTE】数组
    【sas Notel】merge
    【sas sql proc】inner join or outer join
  • 原文地址:https://www.cnblogs.com/liunx1109/p/11669079.html
Copyright © 2020-2023  润新知