美文网首页Java
ReentranLock(重入锁)

ReentranLock(重入锁)

作者: TZX_0710 | 来源:发表于2020-03-06 20:29 被阅读0次

ReenTranLock是什么?
ReentrantLock 是一把可重入锁和互斥锁,它具有与 synchronized 关键字相同的含有隐式监视器锁(monitor)的基本行为和语义,但是它比 synchronized 具有更多的方法和功能。

直接代码解释

package com.company;

import java.util.concurrent.locks.ReentrantLock;

/**
 * @author reality
 * @title: MyFailLock
 * @projectName ReentrantLock
 * @description: TODO
 * @date 2020/1/8 11:08
 */
public class MyFailLock  extends  Thread{

    //创建公平锁 true为公平锁 false 为非公平所
    //公平锁获取锁的机会是相同的 按照顺序访问
    //非公平锁  不保证按照顺序访问
    private ReentrantLock reentrantLock=new ReentrantLock( true );
  //ReentrantLock提供了 构造函数, 默认参数为false,传true表示创建一个公平锁
   //private ReentrantLock reentrantLock=new ReentrantLock( true );
    //创建一个测试方法
    public void failLock(){
        try {
            reentrantLock.lock();
            System.out.println(Thread.currentThread().getName()+"正在持有锁");
        }finally {
            System.out.println(Thread.currentThread().getName()+"释放了锁");
            reentrantLock.unlock();
        }

    }

    public static void main(String[] args) {
        //创建对象
        MyFailLock myFailLock=new MyFailLock();
        //实现一个runnable对象
        Runnable runnable=()->{
            System.out.println(Thread.currentThread().getName()+"启动");
            //执行
            myFailLock.failLock();
        };
        //创建1一个数组
        Thread[]threads=new Thread[10] ;
        //创建10个对象
        for (int i=0;i<10;i++){
            threads[i]=new Thread( runnable );
        }
        //循环10次开始启动执行
        for ( int i=0;i<10;i++){
            threads[i].start();
        }

    }
}

相关文章

  • 重入锁的源码解析

    今天来分析一下重入锁的源码 ReentranLock定义 重入锁ReentranLock是一种支持重进入的锁,表示...

  • ReentranLock(重入锁)

    ReenTranLock是什么?ReentrantLock 是一把可重入锁和互斥锁,它具有与 synchroniz...

  • 线程池(2)execute()执行过程源码分析

    线程池ThreadPoolExecutor源码分析 所需知识点: 1、ReentranLock 重入锁 以及 Co...

  • Java面试题(一)

    请描述synchronized和Reentranlock的底层实现及重入的底层原理 请描述锁的四种状态和升级过程 ...

  • 可重入锁 ReentranLock 和 Condition

    ReentrantLock 可重用锁 1. 同一个线程未释放锁之前获取同一把锁 一个线程在获取了锁之后,再次去获取...

  • ReentrantLock源码分析

    ReentranLock从字面上理解就是可重入锁,它支持同一个线程对资源的重复加锁,也是我们平时在处理java并发...

  • java.util.concurrent.locks.Reent

    什么是重入锁 重入锁就是指重复进入锁,它表示该锁能够支持一个线程对资源的重复加锁。 重入锁继承与实现关系 重入锁的...

  • ReentrantLock 源码分析

    锁的基本概念 可重入锁 Reentrant 就是可重入的意思,如果锁具备可重入性,则称作为可重入锁。像synchr...

  • ReentrantLock重入锁

    一、ReentrantLock重入锁 1、ReentrantLock重入锁简介 ReentrantLock可以完全...

  • Java并发编程-重入锁

    章节目录 什么是重入锁 底层实现-如何实现重入 公平与非公平获取锁的区别与底层实现 1.什么是重入锁 1.1 重入...

网友评论

    本文标题:ReentranLock(重入锁)

    本文链接:https://www.haomeiwen.com/subject/fudsactx.html