日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java并發(fā)編程之Semaphore的使用簡介

瀏覽:216日期:2022-08-14 10:14:33
簡介

Semaphore是用來限制訪問特定資源的并發(fā)線程的數(shù)量,相對于內(nèi)置鎖synchronized和重入鎖ReentrantLock的互斥性來說,Semaphore可以允許多個(gè)線程同時(shí)訪問共享資源。

Semaphored的使用構(gòu)造方法

Semaphore(int permits):創(chuàng)建Semaphore,并指定許可證的數(shù)量。(公平策略為非公平)

Semaphore(int permits, boolean fair):創(chuàng)建Semaphore,并指定許可證的數(shù)量和公平策略。

核心方法

acquire():從Semaphore中獲取一個(gè)許可證,如果獲取不到則阻塞等待,直到其他線程釋放了一個(gè)許可證或者當(dāng)前線程被中斷。

acquire(int permits):從Semaphore中獲取指定數(shù)量的許可證,如果獲取不到則阻塞等待,直到其他線程釋放了對應(yīng)數(shù)量的許可證或者當(dāng)前線程被中斷。

acquireUninterruptibly():從Semaphore中獲取一個(gè)許可證,如果獲取不到則阻塞等待,直到其他線程釋放了一個(gè)許可證。(不響應(yīng)中斷)

tryAcquire():嘗試從Semaphore中獲取一個(gè)許可證,獲取成功則返回true,獲取失敗則返回false,不會進(jìn)行等待。(不受公平策略的影響,許可證可用則立即獲得)

tryAcquire(long timeout, TimeUnit unit):嘗試從Semaphore中獲取一個(gè)許可證,獲取成功則返回true,獲取失敗則等待指定的時(shí)間,直到等待時(shí)間結(jié)束還是沒有獲取到許可證則返回false。

release():釋放一個(gè)許可證。

release(int permits):釋放指定數(shù)量的許可證。

示例

總共有5個(gè)許可證,最先獲取到許可證的5個(gè)線程開始執(zhí)行任務(wù),沒獲取到的線程進(jìn)入等待狀態(tài),直到獲取到許可證的線程釋放許可證后,再獲取許可證執(zhí)行任務(wù)。

public class Demo { public static void main(String[] args) {//創(chuàng)建許可證數(shù)量為5的SemaphoreSemaphore semaphore = new Semaphore(5);Runnable runnable = () -> { String threadName = Thread.currentThread().getName(); try{//獲取一個(gè)許可證semaphore.acquire();System.out.println(threadName + '執(zhí)行任務(wù)...');Thread.sleep(3000); } catch (InterruptedException e) {e.printStackTrace(); } finally {//釋放一個(gè)許可證semaphore.release(); }};ExecutorService executorService = Executors.newFixedThreadPool(10);for(int i = 0; i < 10; i++){ executorService.execute(runnable);}executorService.shutdown(); }}/* 開始輸出: * pool-1-thread-1執(zhí)行任務(wù)... * pool-1-thread-5執(zhí)行任務(wù)... * pool-1-thread-6執(zhí)行任務(wù)... * pool-1-thread-7執(zhí)行任務(wù)... * pool-1-thread-3執(zhí)行任務(wù)... * 三秒后輸出: * pool-1-thread-4執(zhí)行任務(wù)... * pool-1-thread-8執(zhí)行任務(wù)... * pool-1-thread-2執(zhí)行任務(wù)... * pool-1-thread-10執(zhí)行任務(wù)... * pool-1-thread-9執(zhí)行任務(wù)... */使用Semaphore實(shí)現(xiàn)互斥

使用Semaphore實(shí)現(xiàn)互斥只需要將許可證數(shù)量設(shè)置為1,這樣就可以保證只有一個(gè)線程能獲取到許可證。

Semaphore semaphore = new Semaphore(1);

相比內(nèi)置鎖synchronized和重入鎖ReentrantLock,使用Semaphore實(shí)現(xiàn)互斥有個(gè)明顯的缺點(diǎn):不可重入,沒有釋放許可證的情況下,再次調(diào)acquire方法將導(dǎo)致死鎖。

示例:

public class Demo { public static void main(String[] args) {Semaphore semaphore = new Semaphore(1);Runnable runnable = () -> { String threadName = Thread.currentThread().getName(); try {//獲取一個(gè)許可證semaphore.acquire();System.out.println(threadName + '執(zhí)行任務(wù)A...');semaphore.acquire();System.out.println(threadName + '執(zhí)行任務(wù)B...'); } catch (InterruptedException e) {e.printStackTrace(); } finally {//釋放一個(gè)許可證semaphore.release(); }};new Thread(runnable).start(); }}/* * 輸出結(jié)果: * Thread-0執(zhí)行任務(wù)A... */

“執(zhí)行任務(wù)B”永遠(yuǎn)不會打印,因?yàn)樵S可證只有一個(gè),第二次acquire方法的調(diào)用會因?yàn)闊o法獲取到許可證而一直阻塞。

以上就是Java并發(fā)編程之Semaphore的使用簡介的詳細(xì)內(nèi)容,更多關(guān)于Java并發(fā)編程之Semaphore的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
午夜久久影院| 日韩综合一区二区| 精品国产中文字幕第一页| 欧美精品国产| 国产一卡不卡| 国产精品毛片久久久| 国产亚洲字幕| 久久久精品区| 国产高潮在线| 少妇精品导航| 欧美日韩国产高清| 亚洲精品亚洲人成在线观看| 亚洲毛片视频| 日韩精品免费视频一区二区三区| 日本午夜精品一区二区三区电影 | 丝袜a∨在线一区二区三区不卡| 国产亚洲一级| 日韩国产在线一| 久久久91麻豆精品国产一区| 成人午夜网址| 亚洲一级高清| 一本综合精品| 欧美国产亚洲精品| 性欧美videohd高精| 免费毛片在线不卡| 亚州av日韩av| 欧美经典一区| 一区二区精品伦理...| 亚洲精品一区二区妖精| 免费成人av在线播放| 人人爱人人干婷婷丁香亚洲| 精品国产成人| 欧美特黄一区| 国产欧美日韩在线一区二区 | 久久性天堂网| 国产日韩一区二区三免费高清| 精品国产成人| 国产免费成人| 久久av偷拍| 日韩精品影视| 日本中文字幕一区二区视频| 精品国产亚洲一区二区三区在线 | 色天使综合视频| 日韩中文字幕一区二区三区| 国产精品视频一区视频二区| 免费在线小视频| 一本综合精品| 国产一区一一区高清不卡| 美女少妇全过程你懂的久久| 欧美日韩xxxx| 久久久久国产| 国产日本亚洲| 欧美日韩国产一区二区三区不卡| 日韩高清成人在线| 亚洲成人一区在线观看| 亚洲理论在线| 日韩欧美一区二区三区免费观看| 在线一区二区三区视频| 四虎国产精品免费观看| 亚洲欧美日本国产| 欧美香蕉视频| 国产亚洲欧美日韩精品一区二区三区 | 99在线观看免费视频精品观看| 911亚洲精品| 色综合www| 日韩动漫一区| 欧美日韩国产一区二区三区不卡 | 成人国产精品久久| 中文字幕一区二区三区四区久久 | 国产精品啊v在线| 亚洲资源av| 国产91欧美| 欧美一区激情| 亚洲一级影院| 麻豆视频久久| 亚洲永久精品唐人导航网址| 蜜臀久久精品| 国产精品chinese| 蜜桃久久精品一区二区| 香蕉视频亚洲一级| 精品无人区麻豆乱码久久久| 亚洲另类视频| 99国产精品自拍| 日本а中文在线天堂| 亚洲一区国产| 久久国产精品成人免费观看的软件| 国产精品一区二区三区www | 免费观看日韩电影| 国产中文一区| 国产精品蜜芽在线观看| 欧美日本二区| 亚洲色图综合| 欧美日韩少妇| 国产综合激情| 人人香蕉久久| 福利在线免费视频| 免费一级欧美在线观看视频| 人人精品久久| 亚洲欧洲美洲国产香蕉| 欧美日韩黑人| 免费观看久久av| 日韩欧美一区免费| 久久精品系列| 国产精品久久久久久久久久白浆 | 一区二区电影在线观看| 亚洲欧美日韩国产| 99久久婷婷这里只有精品| 国产videos久久| 国产在线观看91一区二区三区| 国产精品免费不| 日本h片久久| 亚洲精品影视| 蜜臀av一区二区在线免费观看| 午夜免费一区| 91精品国产福利在线观看麻豆| 涩涩av在线| 日韩国产一区二区| 日韩黄色大片| 日韩免费视频| 精精国产xxxx视频在线野外| 日韩精品专区| 国产中文欧美日韩在线| 国产拍在线视频| 中文字幕在线看片| 超碰成人av| 91精品久久久久久久久久不卡| 久久久久网站| 色偷偷偷在线视频播放| 亲子伦视频一区二区三区| 久久久久久久久丰满| 亚洲成人一区| 亚洲欧美日韩专区| 亚洲免费成人av在线| 欧美一区精品| 精品中文在线| 欧美天堂视频| 久久一区二区三区喷水| 五月婷婷亚洲| 亚洲综合福利| 国产精品亚洲四区在线观看| 久久久国产精品网站| 国产91在线精品| 亚洲www啪成人一区二区| 女同性一区二区三区人了人一| 亚洲欧美日韩综合国产aⅴ| 日韩中文字幕| 免费亚洲婷婷| 久久久久国产| 亚洲色图国产| 国产欧美午夜| 韩国三级一区| 国产精品婷婷| 国产日韩视频在线| 国产夫妻在线| 国产二区精品| 亚洲精品福利| 精品色999| 亚洲特色特黄| 蜜桃传媒麻豆第一区在线观看| 欧美一级网站| 超碰在线99| 亚洲涩涩av| 国内一区二区三区| 日韩午夜免费| 国产欧美啪啪| 久久精选视频| 日韩精品亚洲专区在线观看| 美日韩一区二区三区| 免费av一区| 国产毛片精品| 蜜桃tv一区二区三区| 欧美日韩亚洲一区二区三区在线 | 欧美成人精品| 国产欧美一级| 香蕉国产精品| 国产精品尤物| 精品一区欧美| 国产探花一区| 久久精品国产www456c0m| 免费看欧美美女黄的网站| 麻豆成人在线观看| 亚洲欧美日本国产专区一区| 精品亚洲精品| 亚洲精品国模| 日韩精品欧美| 国产精品99精品一区二区三区∴| 欧美精选一区二区三区| 欧美激情视频一区二区三区免费 | 136国产福利精品导航网址| 欧美日韩1区| 免费不卡中文字幕在线| 久久99久久久精品欧美| 三级欧美在线一区| 国产精品yjizz视频网| 日韩av中文在线观看| 久久中文亚洲字幕| 国产精品夜夜夜| 蜜桃视频在线观看一区二区| 日韩国产综合| 麻豆中文一区二区|