`

ReadWriteLock读写锁

阅读更多
ReadWriteLock 读写锁:多读单写

public class LockTest {
ReadWriteLock lockTreeMap = new ReentrantReadWriteLock();
final TreeMap<Long, String> treeMap = new TreeMap<Long, String>();

public static void main(String[] args) {
LockTest lock = new LockTest();

lock.new TestThread().start();
lock.new TestThread().start();
lock.new TestThread().start();
lock.new TestThread().start();
lock.new TestThread().start();
lock.new TestThread().start();
}

class TestThread extends Thread{
public TestThread(){
}
public void run(){
test();
}
}

void test(){
int loop = 16;
        for (int i = 0; i < loop; i++) {
            String msg = null;
            try {
                lockTreeMap.readLock().lockInterruptibly();
                try {
                    if (!treeMap.isEmpty()) {
                        msg = treeMap.firstEntry().getValue();
                    } else {
                        break;
                    }
                } finally {
                    lockTreeMap.readLock().unlock();
                }
            } catch (InterruptedException e) {

            }
        }
       
        System.out.println("***");
        try {
            lockTreeMap.writeLock().lockInterruptibly();
            try {
                if (!treeMap.isEmpty()) {
                    System.out.println("...");
                }
            } finally {
                lockTreeMap.writeLock().unlock();
            }
        } catch (InterruptedException e) {
        }
}
}
0
0
分享到:
评论

相关推荐

    Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    主要介绍了Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁,本文讲解了ReentrantLock概况、Lock接口、Lock使用、轮询锁的和定时锁、公平性、可中断获锁获取操作等内容,需要的朋友可以参考下

    同步 读写锁 readwriteLock

    读写锁的设计实现等.。。。。。。。。。。。。。。。。。。。。

    尚硅谷Java视频_JUC 视频教程

    尚硅谷_JUC线程高级_ReadWriteLock 读写锁 ·12. 尚硅谷_JUC线程高级_线程八锁 ·13. 尚硅谷_JUC线程高级_线程池 ·14. 尚硅谷_JUC线程高级_线程调度 ·15. ForkJoinPool 分支合并框架-工作窃取

    Java多线程之readwritelock读写分离的实现代码

    主要介绍了Java多线程之readwritelock读写分离的相关内容,文中涉及具体实例代码,具有一定参考价值,需要的朋友可以了解下。

    Java多线程编程之读写锁ReadWriteLock用法实例

    主要介绍了Java多线程编程之读写锁ReadWriteLock用法实例,本文直接给出编码实例,需要的朋友可以参考下

    e语言-易语言线程安全之原子锁与读写锁

    局部变量 rwLock, ReadWriteLock ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、...

    ReadWriteLock:使用 POSIX 信号量用 C 编写的读者首选读写锁

    C 语言中的可移植读写锁该项目旨在为 C 创建一个易于使用且可移植的读写锁。这是通过使用 POSIX 信号量和“隐藏”结构声明来实现的,以避免滥用提供的 API。 这个锁是reader-preferred ,这意味着一个 writer 必须...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

    java核心知识点整理.pdf

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM .........................

    ReadWriteLock

    一个Windows下C++读写锁的代码,实现共享读,独占写

    ReadWriteLock的使用

    ReadWriteLock的使用,实际上由于ReadWriteLock是一个接口,所以实际使用的是ReentrantReadWriteLock子类。同时ReadWriteLock的使用其实也是比较简单的,就是读写的锁的使用以及注意事项而已。

    juconcurrent:java.util.concurrent

    Java JUC的使用1.volatile关键字-内存可见性2.原子变量-CAS算法3.ConcurrentHashMap锁分段机制4....线程按序交替9.ReadWriteLock读写锁10.线程八锁11.线程池12.线程调度13.ForkJoinPool 分支/合并框架 工作窃取

    homework-ReadWriteLock-KristampsW-main.zip

    读写锁源码

    zookeeper分布式锁实例源码

    基于zookeeper的不可重入锁Shared Lock 举例,可重入锁Shared Reentrant Lock 举例,可重入读写锁Shared Reentrant ReadWriteLock 举例

    panda-demo.zip

    本项目,对同一功能,分别用ReadWriteLock 和 Synchronized加以实现,并对读写锁和Synchronized的性能进行的对比。

    一个小的java Demo , 非常适合Java初学者学习阅读.rar

    使用 ForkJoinPool 进行分叉和合并,锁 Lock,读写锁 ReadWriteLock 原子性长整型 AtomicLong,原子性引用型 AtomicReference 修改数据: 一 服务端修改数据: 一 文章知识点与官方知识档案匹配,可进一步学习相关...

    java并发工具包详解

    1. java.util.concurrent - Java 并发工具包 ...21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 AtomicLong 25. 原子性引用型 AtomicReference

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 ...21. 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 AtomicLong 25. 原子性引用型 AtomicReference

    Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf

    java_util_concurrent_user_guide_cn.pdf 内容预览: 1.... 读写锁 ReadWriteLock 22. 原子性布尔 AtomicBoolean 23. 原子性整型 AtomicInteger 24. 原子性长整型 AtomicLong 25. 原子性引用型 AtomicReferenc

    详解java多线程的同步控制

    目录线程安全 Thread Safety重入锁 ReentrantLock读写锁 ReadWriteLock倒计数器 CountDownLatch循环栅栏 CyclicBarrier信号量 Semaphore 线程安全 Thread Safety JMM JMM(Java Memory Model)是一种基于计算机内存...

Global site tag (gtag.js) - Google Analytics