最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的Semaphore信號(hào)量簡(jiǎn)單使用代碼實(shí)例

 更新時(shí)間:2023年12月18日 10:33:06   作者:暴躁的程序猿啊  
這篇文章主要介紹了Java中的Semaphore信號(hào)量簡(jiǎn)單使用代碼實(shí)例,Semaphore是用來(lái)保護(hù)一個(gè)或者多個(gè)共享資源的訪問(wèn),Semaphore內(nèi)部維護(hù)了一個(gè)計(jì)數(shù)器,其值為可以訪問(wèn)的共享資源的個(gè)數(shù),一個(gè)線程要訪問(wèn)共享資源,需要的朋友可以參考下

Semaphore信號(hào)量

Semaphore是用來(lái)保護(hù)一個(gè)或者多個(gè)共享資源的訪問(wèn),Semaphore內(nèi)部維護(hù)了一個(gè)計(jì)數(shù)器,其值為可以訪問(wèn)的共享資源的個(gè)數(shù)。

一個(gè)線程要訪問(wèn)共享資源,先獲得信號(hào)量,如果信號(hào)量的計(jì)數(shù)器值大于1,意味著有共享資源可以訪問(wèn),則使其計(jì)數(shù)器值減去1,再訪問(wèn)共享資源。

如果計(jì)數(shù)器值為0,線程進(jìn)入休眠。當(dāng)某個(gè)線程使用完共享資源后,釋放信號(hào)量,并將信號(hào)量?jī)?nèi)部的計(jì)數(shù)器加1,之前進(jìn)入休眠的線程將被喚醒并再次試圖獲得信號(hào)量。 例如:停車(chē)場(chǎng)的車(chē)位 ,有空閑車(chē)位才可以停,沒(méi)有空閑車(chē)位只能等待。 主要使用方法:

acquire() 從信號(hào)量獲取一個(gè)許可,在提供一個(gè)許可之前一直將線程阻塞 否則線程被中斷

release() 釋放一個(gè)許可,將其返回給信號(hào)量

例子: 停車(chē)場(chǎng)有五個(gè)停車(chē)位 有十輛車(chē)要停

public class SemaphoreDemo {
    public static void main(String[] args) {
        //參數(shù) 許可數(shù)量  例有五個(gè)空停車(chē)位
        Semaphore semaphore = new Semaphore(5);
        //模擬10輛汽車(chē)  要停車(chē)  只能有五輛汽車(chē)同時(shí)停  其他車(chē)只能等待
        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                try {
                    //acquire()得到  成功拿到車(chē)位停車(chē)
                    semaphore.acquire();
                    System.out.println(Thread.currentThread().getName() + "搶到車(chē)位");
                    //停兩秒鐘的車(chē)
                    TimeUnit.SECONDS.sleep(2);
                    //離開(kāi)車(chē)位
                    System.out.println(Thread.currentThread().getName() + "離開(kāi)車(chē)位");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    //release()釋放
                    semaphore.release();
                }
            }).start();
        }
    }
}

在這里插入圖片描述

到此這篇關(guān)于Java中的Semaphore信號(hào)量簡(jiǎn)單使用代碼實(shí)例的文章就介紹到這了,更多相關(guān)Semaphore信號(hào)量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

    基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

    這篇文章主要介紹了SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot自帶的緩存@EnableCaching用法

    springboot自帶的緩存@EnableCaching用法

    這篇文章主要介紹了springboot自帶的緩存@EnableCaching用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 用java實(shí)現(xiàn)跳動(dòng)的小球示例代碼

    用java實(shí)現(xiàn)跳動(dòng)的小球示例代碼

    這篇文章主要介紹了用java實(shí)現(xiàn)跳動(dòng)的小球,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Spring Boot應(yīng)用關(guān)閉分析詳解

    Spring Boot應(yīng)用關(guān)閉分析詳解

    本文挖掘了Spring Boot的關(guān)閉方式,并列舉了關(guān)閉方式,從原理、源碼的角度闡述了Spring Boot的關(guān)閉代碼及擴(kuò)展點(diǎn),感興趣的朋友一起看看吧
    2024-12-12
  • Spring Bean三種注入方式詳解

    Spring Bean三種注入方式詳解

    本篇文章主要介紹了Spring Bean三種注入方式詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解

    SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解

    這篇文章主要介紹了SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java多線程實(shí)現(xiàn)異步調(diào)用的方法

    Java多線程實(shí)現(xiàn)異步調(diào)用的方法

    本文給大家分享java多線程實(shí)現(xiàn)異步調(diào)用的方法,感興趣的朋友跟著腳本之家小編一起學(xué)習(xí)吧
    2015-09-09
  • SpringBoot整合Redis實(shí)現(xiàn)登錄失敗鎖定功能(實(shí)例詳解)

    SpringBoot整合Redis實(shí)現(xiàn)登錄失敗鎖定功能(實(shí)例詳解)

    本文我們已經(jīng)探討如何利用Redis來(lái)實(shí)現(xiàn)鎖定賬戶的安全措施,以及通過(guò)SpringBoot整合Redis實(shí)現(xiàn)了這一功能,感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2024-02-02
  • WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程

    WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程

    這篇文章主要介紹了WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • resty的緩存技術(shù)設(shè)計(jì)及使用

    resty的緩存技術(shù)設(shè)計(jì)及使用

    這篇文章主要為大家介紹了resty緩存技術(shù)的設(shè)計(jì)及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03

最新評(píng)論

垣曲县| 青神县| 三原县| 承德市| 丁青县| 左权县| 镇平县| 汤原县| 育儿| 门源| 巴中市| 北海市| 昔阳县| 策勒县| 浪卡子县| 南通市| 休宁县| 高青县| 新巴尔虎左旗| 白水县| 贵州省| 剑阁县| 大新县| 岗巴县| 邓州市| 隆安县| 开江县| 古田县| 唐海县| 柳林县| 阿拉尔市| 开远市| 鄢陵县| 黄梅县| 论坛| 溧水县| 库车县| 都安| 安化县| 滦平县| 深泽县|