ReadWriteLock

作者: 尉昌达 | 来源:发表于2020-07-07 22:41 被阅读0次
public class ReadWriteLock {
    static Lock lock = new ReentrantLock();
    private static int value;

    static ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
    static Lock readLock = readWriteLock.readLock();
    static Lock writeLock = readWriteLock.writeLock();

    public static void read(Lock lock) {
        try {
            lock.lock();
            Thread.sleep(1000);
            System.out.println("read over!");
            //模拟读取操作
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
    }

    public static void write(Lock lock, int v) {
        try {
            lock.lock();
            Thread.sleep(1000);
            value = v;
            System.out.println("write over!");
            //模拟写操作
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
    }





    public static void main(String[] args) {
        //Runnable readR = ()-> read(lock);
        Runnable readR = ()-> read(readLock); //读锁,其他读线程都能访问

        //Runnable writeR = ()->write(lock, new Random().nextInt());
        Runnable writeR = ()->write(writeLock, new Random().nextInt()); //写锁独占

        for(int i=0; i<18; i++) new Thread(readR).start();
        for(int i=0; i<2; i++) new Thread(writeR).start();


    }
}

相关文章

  • 当被面试官问到:JUC并发编程——读写锁 ReadWriteLo

    1、ReadWriteLock 简介 ReadWriteLock 在java.util.concurrent.lo...

  • 读写锁 ReadWriteLock

    RelaxHeart网 - Tec博客: 我的更多文章 ReadWriteLock ReadWriteLock是J...

  • 读写锁

    今天来说说Java 的读写锁-ReadWriteLock,ReadWriteLock是一个接口,实现类是Reent...

  • ReadWriteLock

    其实就是ReadWriteLock 下面有个sync 里面又声明了 ReadLock 和writeLock 公用一...

  • ReadWriteLock

    ReadWriteLock 从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock)。 Reen...

  • ReadWriteLock

    ReadWriteLock 适用于读多写少的场景,针对读多写少这种并发场景,Java SDK并发包提供了读写锁——...

  • ReadWriteLock

  • ReadWriteLock

    面试的高频问题读锁 - 共享锁写锁 - 排它锁 执行结果:原则上前18个线程1s完成read over!read ...

  • ReadWriteLock

    2、 ReadWriteLock 接口 ReentrantReadWriteLock是ReentrentLock接...

  • ReadWriteLock读写锁

    1、引入ReadWriteLock读写锁 ReadWriteLock是JDK5中提供的读写分离锁。读写分离锁可以有...

网友评论

    本文标题:ReadWriteLock

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