日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java笔记-ReadWriteLock与Condition的使用

發布時間:2025/3/15 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java笔记-ReadWriteLock与Condition的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ReentrantLock保證了只有一個線程可以執行臨界區代碼。

允許多個線程同時讀,但只有一個線程在寫,其他線程就必須等待。

?

使用ReadWriteLock可以解決:

只允許一個線程寫入(其他線程既不能寫入也不能讀取)

沒有寫入時,多個線程允許同時讀(提高性能)

程序運行截圖如下:

源碼如下:

import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;class Counter{private ReadWriteLock lock = new ReentrantReadWriteLock();private Lock rlock = lock.readLock();private Lock wlock = lock.writeLock();private int value = 0;public void add(int m){wlock.lock();try{this.value += m;}finally {wlock.unlock();}}public void dec(int m){wlock.lock();try{this.value -= m;}finally {wlock.unlock();}}public int get(){rlock.lock();try{return this.value;}finally {System.out.println("Count get Finally");rlock.unlock();}} }public class Main1 {final static int LOOP = 100;public static void main(String[] args) throws InterruptedException {final Counter counter = new Counter();Thread t1 = new Thread(){@Overridepublic void run() {for(int i = 0; i < LOOP; i++){counter.add(1);}}};Thread t2 = new Thread(){@Overridepublic void run() {for(int i = 0; i < LOOP; i++){counter.dec(1);}}};t1.start();t2.start();t1.join();t2.join();System.out.println("COUNTER: " + counter.get());} }

condition中的:

await/signal/signalAll和wait/notify/notifyAll一樣。

await()會釋放當前鎖,進入等待狀態。

signal()會喚醒某個等待線程

signalAll()會喚醒所有等待線程

喚醒線程從await()返回后需要重新獲得:

?

程序運行截圖如下:

源碼如下:

import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;class TaskQueue{final Queue<String> queue = new LinkedList<String>();final Lock lock = new ReentrantLock();final Condition notEmpty = lock.newCondition();public String getTask() throws InterruptedException {lock.lock();try{while(this.queue.isEmpty()){notEmpty.await();}return queue.remove();}finally {lock.unlock();}}public void addTask(String name){lock.lock();try{this.queue.add(name);notEmpty.signalAll();}finally {lock.unlock();}} }class WorkerThread extends Thread{TaskQueue taskQueue;public WorkerThread(TaskQueue taskQueue){this.taskQueue = taskQueue;}@Overridepublic void run() {while (!isInterrupted()){String name = "";try{name = taskQueue.getTask();}catch (InterruptedException e) {break;}String result = "HELLO, " + name + " !";System.out.println(result);}} }public class Main2 {public static void main(String[] args) throws InterruptedException {TaskQueue taskQueue = new TaskQueue();WorkerThread workerThread = new WorkerThread(taskQueue);workerThread.start();taskQueue.addTask("小明");Thread.sleep(1000);taskQueue.addTask("小紅");Thread.sleep(1000);taskQueue.addTask("小剛");Thread.sleep(1000);workerThread.interrupt();workerThread.join();System.out.println("END");} }

?

總結

以上是生活随笔為你收集整理的Java笔记-ReadWriteLock与Condition的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美亚洲天堂网 | 欧美一区二区三区大屁股撅起来 | 亚洲av永久无码精品国产精品 | 少妇被躁爽到高潮 | 欧美精品色呦呦 | 欧美丰满一区二区免费视频 | 香蕉视频在线观看网站 | 久久免费av | 一区二区三区日韩欧美 | 亚洲无卡视频 | 午夜精品久久久久久久久久久久 | 能在线观看的av网站 | 三级免费黄录像 | 美女操出白浆 | 国产精品资源在线观看 | 综合久草 | 婷婷五月花 | 国产在线视频网站 | 俺也去av | 日本黄色录像片 | 欧美一二三区在线观看 | 草久在线观看视频 | 曰本无码人妻丰满熟妇啪啪 | 女人18毛片毛片毛片毛片区二 | 欧美日韩免费高清 | 一区二区三区精 | 鲁一鲁色一色 | 日韩高清二区 | 亚洲阿v天堂 | 涩涩视频在线 | 性国产精品| 中文字幕免 | 黑丝美女av | 国产精品秘入口18禁麻豆免会员 | 国产成人+综合亚洲+天堂 | 国产伦理在线观看 | 在线国产视频 | 欧美性猛交xxxx乱大交蜜桃 | 日本网站在线看 | 精品看片 | 亚洲三级成人 | 尹人在线视频 | 国产成人精品一区二区三区福利 | 在线观看国产欧美 | 好吊视频一区 | 男人插入女人下面视频 | 国产精品不卡一区二区三区 | 欧美一区二区三区成人 | 一级久久久久久 | 日韩av成人网 | 久操亚洲 | www.av在线 | 亚洲 欧美 激情 另类 | 日本www视频| 日韩午夜在线观看 | 精品久久久久久久久久久久久 | 肉肉av福利一精品导航 | 少女与动物高清版在线观看 | 人人亚洲 | 黄色免费网站在线看 | 依依激情网 | 亚洲精品视频免费在线观看 | 国产天堂精品 | 夜夜嗨av禁果av粉嫩avhd | 久久久无码精品亚洲无少妇 | 亚洲成av人片一区二区梦乃 | 精品视频免费观看 | 老司机狠狠爱 | www.香蕉视频在线观看 | 玖玖爱av | 久久久久久伦理 | 五月婷婷一区 | 日日干日日射 | 欧美三区四区 | 天天躁日日躁狠狠躁av麻豆男男 | www.男人的天堂 | 一本色道综合久久欧美日韩精品 | 深夜成人在线 | 亚洲第一区在线 | 桃色一区二区三区 | av中文字幕在线播放 | 亚洲国产一区二区三区 | av中文资源 | 中国女人一级一次看片 | 亚洲一区二区三区婷婷 | free性欧美hd另类 | 亚洲aa在线| 麻豆精品久久久久久久99蜜桃 | 性欧美精品 | 久青草资源福利视频 | 一级成人免费视频 | 亚洲欧洲免费 | 亚洲精品一 | 九草av | 久久对白 | 国产黄a三级三级看三级 | 久久精品人人做人人爽 | 欧美日韩国产片 | 午夜精品久久久久久久96蜜桃 |