1. gzyueqian
      18529173453

      Java培訓:什么是Java中信號量?

      更新時間: 2023-03-10 14:41:36來源: 粵嵌教育瀏覽量:8822

        系統的資源是有限的,必須在不同的進程之間共享。資源必須在給定時間由一個進程使用,這稱為進程同步。在Java中,信號量用于實現進程同步。Java中的信號量是一種線程同步構造,通過向線程發送信號并保護關鍵部分來避免線程之間的信號丟失。通過使用計數器,信號量管理對共享資源的訪問。如果你也打算從事java行業,可以參加java培訓來提升自己,有老師帶你快速入門,很快就能掌握java知識和技能。

        什么是Java中的信號量?

        Java中的信號量是用于管理并行運行的進程的變量。它是一個非負變量,表示系統中某個時間點可用的資源數量。通過使用計數器,信號量控制共享資源,以確保同時運行的線程能夠訪問資源并避免競爭條件。因此,信號量通過使用同步構造來保護關鍵部分。

        信號量有兩種類型:

        1.計數信號量

        信號量變量用可用資源的數量初始化。當進程需要獲取共享資源時,將調用wait()函數,信號量的值將減少1。使用資源完成流程后,通過調用signal()函數將其釋放。變量的值增加1。當信號量值為0時,所有資源都不可用,進程必須等待資源釋放。

        2.二進制信號量

        在二進制信號量中,變量的值將是0或1。該值在開始時設置為1,如果進程想要使用共享資源,它可以調用wait()函數,值從1變為0。使用資源完成流程后,通過調用signal()函數將其釋放。變量的值從0變為1。當信號量的值為0時,一個進程必須等待獲取共享資源,該共享資源必須由前一個進程釋放。想要快速學會java技能,建議報名參加java培訓,有明確清晰的學習路線,系統規范的課程,專業講師面授指導教學,可以在短時內獲得很大提升。

        信號量是如何工作的?

        信號量計數器的值為0或更高。

        l 當計數器的值大于0時,允許線程訪問共享資源,計數器值減少1。

        l 否則,在獲得許可之前,線程將被阻塞。

        l 線程完成執行后,將釋放不再需要的資源。釋放資源后,計數器值將增加1。

        l 等待獲取相同資源的另一個線程現在可以獲得訪問該資源的許可。

        l 如果計數器為0,則拒絕訪問資源的權限

        以下流程圖說明了信號量的工作:

        

        定時信號量

        顧名思義,定時信號允許線程運行特定的時間。時間一過,所有權限都將被釋放,計時器將被重置。

        總結

        java 計數信號量用來控制訪問某個特定資源的操作數量,或者同時執行某個指定操作的數量,還可以用來實現某種資源池,或者對容器施加邊界。想掌握 Java 技術的同學不妨報個Java培訓班,可以節省學習時間,提高學習效率,在短時間內學有所成,還能找到一份不錯的工作。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲中文字幕在线视频 | 亚洲日韩人人爽 | 在线好屌妞国产精品 | 亚洲天天久久中文字幕精品 | 色拍自拍亚洲综合图区 | 亚洲国内自拍中文 |