B9 Concurrent 重入锁(ReentrantLock)

Posted zlxyt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B9 Concurrent 重入锁(ReentrantLock)相关的知识,希望对你有一定的参考价值。

概述

  

代码实例

import java.util.concurrent.locks.ReentrantLock;

public class Main 

	public static void main(String[] args) 
		Command c = new Command();
		int nThreads = 5;
		for(int i = 0; i < nThreads; i++)
			new Thread(c).start();
		
	



class Command implements Runnable 
	
	ReentrantLock lock = new ReentrantLock();
	
	@Override
	public void run() 
		try
			lock.lock();
			System.out.println(Thread.currentThread().getName() + ": 获得锁!");
		catch(Exception e)
			//处理异常
		finally
			System.out.println(Thread.currentThread().getName() + ": 释放锁!");
			lock.unlock();
		
	

打印结果:

技术图片

lock() 方法处理流程

  

以上是关于B9 Concurrent 重入锁(ReentrantLock)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA多线程重入锁ReentrantLock应用

十ReentrantLock重入锁

锁 Lock重入锁写入锁

ReentrantLock可重入锁的理解和源码简单分析

什么是重入锁和AQS

Java 多线程 重入锁