韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > java基础 > java读写锁的特性

java读写锁的特性

java 读写锁

头像

小妮浅浅

2021-10-20 10:55:456840浏览 · 0收藏 · 0评论

1、公平选择性,支持非公平和公平锁获取,吞吐量不公平优于公平。

2、重进入,读锁和写锁都支持线程重进入。

3、锁降级,遵循获取写锁、获取读锁、释放写锁的顺序,写锁可以降级为读锁。

实例

public class ReadWriteLockTest {
    public static void main(String[] args) {
 
        final Queue q = new Queue();
 
        for (int i = 0; i < 3; i++) {
 
            new Thread() {
                @Override
                public void run() {
 
                    while (true) {
                        q.get();
                    }
                }
            }.start();
 
            new Thread() {
                @Override
                public void run() {
                    while (true) {
                        q.put(new Random().nextInt(10000));
                    }
                }
            }.start();
        }
    }
}
 
class Queue {
 
    //共享数据,只能有一个线程能写该数据,但可以有多个线程同时读该数据。
    ReadWriteLock rwl = new ReentrantReadWriteLock();
    private Object data = null;//共享数据,只能有一个线程能写数据,但可以有多个线程读该数据
 
    public void get() {
        //上读锁,其他线程只能读不能写
        rwl.readLock().lock();
        try {
 
            System.out.println(Thread.currentThread().getName() + " be ready to read data!");
            Thread.sleep((long) (Math.random() * 1000));
            System.out.println(Thread.currentThread().getName() + " have read data :" + data);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            rwl.readLock().unlock();
        }
    }
 
    public void put(Object data) {
        //上写锁,不允许其他线程读也不允许写
        rwl.writeLock().lock();
 
        try {
            System.out.println(Thread.currentThread().getName() + " be ready to write data!");
 
            Thread.sleep((long) (Math.random() * 1000));
 
            this.data = data;
            System.out.println(Thread.currentThread().getName() + " have write data: " + data);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            rwl.writeLock().unlock();
        }
    }
}

以上就是java读写锁的特性,希望对大家有所帮助。更多Java学习指路:Java基础

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

我被5个男人躁一夜不收我怎么办| 风流夫人免费观看高清电视剧| 《朋友的妈妈2》中字头歌词| 被老师摁着强进了好爽H漫画| 老公不在家憋不住了该怎么办| 杓怎么读| 初中小姐姐脚丫踩在男生困困| 《日本公与媳5》公妇伦| 异界茅山学徒| 少妇高潮久久久久久| 《交换做爰》在线观看| 三女片免费观看电视剧杨贵妃传 | 双男主MV大片| 女列车长丰满乳峰| 黑色蕾丝透视露胸旗袍连衣裙| 国外成品网站1688入口在哪| 《酒店激战》动漫1-5集免费观..| 《妻子6》在线观看免费版电视剧| 我穿水K被同桌C出水了H漫画| 美女和帅哥一起努力生产豆浆的视..| 美女和男生一起努力的生孩子视频..| 欧美大片| 28影视网| 《法国空乘4》在线观看| 把她日出水了好紧大爽了视频| 《有夫之妇的秘书》演员表| 老公太长了每次都扎的肚子疼| 天美麻花星空高清免费观看完整版.. | 麻花传剧原创MV免费播放小米车| 新婚夜被强伦无删减版| 《黑人性奴2》免费观看| 《黏糊糊的你》动漫免费观看| 笔记本散热垫| 女士穿紧身裸体开裆光滑皮裤 | 人狗大战6免费观看正版| 交换的温度2HD| 三男一女免费播放电视剧大全 | 《共享弟夫》动漫在线观看免费| 兄弟的老婆4免费观看电视剧| 三个医生换着躁我一个观后感| 一母四女战一婿刘琴小说免费阅读