欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ǎng)的車位 ,有空閑車位才可以停,沒(méi)有空閑車位只能等待。 主要使用方法:

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

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

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

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

  • java對(duì)數(shù)組進(jìn)行排序的方法

    java對(duì)數(shù)組進(jìn)行排序的方法

    這篇文章主要介紹了java對(duì)數(shù)組進(jìn)行排序的方法,涉及java數(shù)組排序的技巧,需要的朋友可以參考下
    2015-03-03
  • 詳解基于java的Socket聊天程序——客戶端(附demo)

    詳解基于java的Socket聊天程序——客戶端(附demo)

    這篇文章主要介紹了詳解基于java的Socket聊天程序——客戶端(附demo),客戶端設(shè)計(jì)主要分成兩個(gè)部分,分別是socket通訊模塊設(shè)計(jì)和UI相關(guān)設(shè)計(jì)。有興趣的可以了解一下。
    2016-12-12
  • Java文件過(guò)濾器實(shí)現(xiàn)按條件篩選文件

    Java文件過(guò)濾器實(shí)現(xiàn)按條件篩選文件

    本文主要介紹了Java文件過(guò)濾器實(shí)現(xiàn)按條件篩選文件,文件過(guò)濾器是在文件處理中起到重要作用的工具,它可以用來(lái)篩選文件并根據(jù)特定的條件進(jìn)行過(guò)濾,下面就來(lái)介紹一下
    2024-04-04
  • 最全Gson使用

    最全Gson使用

    GSON彌補(bǔ)了JSON的許多不足的地方,在實(shí)際應(yīng)用中更加適用于Java開發(fā),本文主要介紹了最全Gson使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java單例模式利用HashMap實(shí)現(xiàn)緩存數(shù)據(jù)

    Java單例模式利用HashMap實(shí)現(xiàn)緩存數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Java單例模式利用HashMap實(shí)現(xiàn)緩存數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Spring Boot Admin實(shí)現(xiàn)服務(wù)健康預(yù)警功能

    Spring Boot Admin實(shí)現(xiàn)服務(wù)健康預(yù)警功能

    這篇文章主要介紹了Spring Boot Admin實(shí)現(xiàn)服務(wù)健康預(yù)警功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Netty分布式Future與Promise執(zhí)行回調(diào)相關(guān)邏輯剖析

    Netty分布式Future與Promise執(zhí)行回調(diào)相關(guān)邏輯剖析

    這篇文章主要為大家介紹了Netty分布式Future與Promise執(zhí)行回調(diào)相關(guān)邏輯剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java Stream的基本概念以及創(chuàng)建方法

    Java Stream的基本概念以及創(chuàng)建方法

    這篇文章主要介紹了Java Stream的基本概念以及創(chuàng)建方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • springboot vue完成編輯頁(yè)面發(fā)送接口請(qǐng)求功能

    springboot vue完成編輯頁(yè)面發(fā)送接口請(qǐng)求功能

    這篇文章主要為大家介紹了springboot+vue完成編輯頁(yè)發(fā)送接口請(qǐng)求功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • SpringBoot?分模塊開發(fā)的操作方法

    SpringBoot?分模塊開發(fā)的操作方法

    這篇文章主要介紹了SpringBoot?分模塊開發(fā)的操作方法,通過(guò)在原項(xiàng)目新增一個(gè)maven模塊,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論