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.synchronizedReentrantLock的区别

 

以上是关于Java多线程和并发,ReentrantLock(公平锁)的主要内容,如果未能解决你的问题,请参考以下文章

ReentrantLock替换synchronized解决多线程并发死锁,Java

JAVA多线程重入锁ReentrantLock应用

Java——多线程高并发系列之ReentrantLock实现(非)公平锁常用方法的举例

Java——多线程高并发系列之ReentrantLock实现(非)公平锁常用方法的举例

Java多线程之ReentrantLock与Condition

Java——多线程高并发系列之LockReentrantLock