Java并发包--ReentrantLock
Posted Lance_xu_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java并发包--ReentrantLock相关的知识,希望对你有一定的参考价值。
Java并发包–ReentrantLock
Java的线程安全,除了基本的同步锁以外,Jdk还为开发者提供了各种同步控制工具,如ReentrantLock,位于java.util.concurrent.locks包下的同步锁工具。
可重入
拿几次lock,就需要释放几次。package com.borderxlab.concurrent.locks.reentrantlock; import java.util.concurrent.locks.ReentrantLock; public class ReenterLock implements Runnable public static ReentrantLock lock = new ReentrantLock(); public static int i = 0; @Override public void run() for (int j = 0; j < 10000; j ++) lock.lock(); lock.lock(); try i ++; finally lock.unlock(); lock.unlock(); public static void main(String[] args) throws InterruptedException ReenterLock r = new ReenterLock(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(i);
可中断
可限时
公平锁
以上是关于Java并发包--ReentrantLock的主要内容,如果未能解决你的问题,请参考以下文章
Java并发包4--可重入锁ReentrantLock的实现原理
Java中juc并发包下的Condition接口与ReentrantLock对象锁实现线程通信
Java 并发编程 进阶 -- Java并发包中锁原理剖析(LockSupport抽象同步队列AQS独占锁ReentrantLock读写锁ReentrantReadWriteLock)
Java 并发编程 进阶 -- Java并发包中锁原理剖析(LockSupport抽象同步队列AQS独占锁ReentrantLock读写锁ReentrantReadWriteLock)