Java多线程和并发,ReentrantLock(公平锁)
Posted 寻找梦想的大熊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程和并发,ReentrantLock(公平锁)相关的知识,希望对你有一定的参考价值。
目录
1.ReentrantLock
2.ReentrantLock的实现
3.synchronized和ReentrantLock的区别
九、ReentrantLock(公平锁)
1.ReentrantLock
2.ReentrantLock的实现
public class ReentrantLockDemo implements Runnable{ private static ReentrantLock lock = new ReentrantLock(true); @Override public void run(){ while (true){ try{ lock.lock(); System.out.println(Thread.currentThread().getName() + " get lock"); Thread.sleep(1000); } catch (Exception e){ e.printStackTrace(); } finally { lock.unlock(); } } } public static void main(String[] args) { ReentrantLockDemo rtld = new ReentrantLockDemo(); Thread thread1 = new Thread(rtld); Thread thread2 = new Thread(rtld); thread1.start(); thread2.start(); } }
只有当ReentrantLock构造中传入为true时才是公平锁
3.synchronized和ReentrantLock的区别
以上是关于Java多线程和并发,ReentrantLock(公平锁)的主要内容,如果未能解决你的问题,请参考以下文章
ReentrantLock替换synchronized解决多线程并发死锁,Java
Java——多线程高并发系列之ReentrantLock实现(非)公平锁常用方法的举例
Java——多线程高并发系列之ReentrantLock实现(非)公平锁常用方法的举例