zoukankan      html  css  js  c++  java
  • 启动器的学习

    一、核心思想

      

    二、启动流程

      

    三、依赖关系的代码

      

    四、重入锁的使用

      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();

    }
  • 相关阅读:
    单调队列
    2019牛客暑期多校训练营(第一场)
    没有上司的舞会
    飞碟解除器
    最小费用最大流
    prim
    merge_sort
    CCF认证之——相反数
    CCF考试认证模拟练习——数字排序
    算法之分治法
  • 原文地址:https://www.cnblogs.com/liunx1109/p/11669079.html
Copyright © 2011-2022 走看看