1. gzyueqian
      13352868059

      Java培訓(xùn):什么是Java中信號量?

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

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

        什么是Java中的信號量?

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

        信號量有兩種類型:

        1.計數(shù)信號量

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

        2.二進制信號量

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

        信號量是如何工作的?

        信號量計數(shù)器的值為0或更高。

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

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

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

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

        l 如果計數(shù)器為0,則拒絕訪問資源的權(quán)限

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

        

        定時信號量

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

        總結(jié)

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

      免費預(yù)約試聽課

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

      
      

      1. 污污网站国产精品白丝袜 | 日韩R级网站在线观看 | 在线观看国产日韩亚洲中 | 亚洲欧美日韩国产专区一区 | 日本一高清二区视频久二区 | 自偷自拍三级视频在线观看 |