一 . 概述

  在并发的经典场景之中,有一个读者和写者的问题.其中描述的问题是有写者和读者完成对一个资源的访问,其中读者可以共享的访问的

    资源,而写者只能独占的访问资源.

  我们看到这个场景之中有独占和共享两个概念.


二 . 读写锁

  在JUC之中提供了一个读写锁,通过读写锁可以完成对资源的读写操作,其中体现了读写分离的作用,

public class ReadWriteTest {

    public static void main(String[] args) {
        //
        ReadWriteLock lock = new ReentrantReadWriteLock(true);
        // 创建读锁
        Lock readLock = lock.readLock();
        // 创建写锁
        Lock writeLock = lock.writeLock();
        // 定义多个读者线程,他们可以并发的访问资源
        for (int x = 0; x < 3; x++) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        readLock.lock();
                        System.out.println("读者运行中...");
                        try {
                            TimeUnit.SECONDS.sleep(2);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }finally {
                        readLock.unlock();
                    }
                }
            }).start();

        }
        
        //创建写者
        for (int x = 0; x < 3; x++) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        writeLock.lock();
                        try {
                            System.out.println("写者运行中...");
                            TimeUnit.SECONDS.sleep(1);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }finally {
                        writeLock.unlock();
                    }
                }
            }).start();

        }

    }
}

我们可以观察到我们的读操作确实是并行的,而写操作是独占式的.


优质内容筛选与推荐>>
1、断言(assert)和程序的安全保证
2、介质库使用说明
3、notepad++如何设置自动换行
4、今天要搞卫生
5、19:批量检查多个网站地址是否正常


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号