亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

信號(hào)量

OldPanda / 1200人閱讀

摘要:對(duì)于信號(hào)量,可以認(rèn)為是一個(gè)倉(cāng)庫(kù),有兩個(gè)概念,容量和當(dāng)前的貨物個(gè)數(shù)。創(chuàng)建信號(hào)量,設(shè)置容量,先有操作,才能操作。構(gòu)造函數(shù)需要指定信號(hào)量的容量,可選指定是否公平,以防止低優(yōu)先級(jí)線程的饑餓狀態(tài)。

信號(hào)量是操作系統(tǒng)提供給用戶使用的一種機(jī)制,幫助用戶進(jìn)程協(xié)調(diào)使用資源,用戶編程的時(shí)候可以直接調(diào)用,不必自己設(shè)計(jì)。計(jì)算機(jī)對(duì)信號(hào)量只能執(zhí)行 wait和signal這兩種原子(sychronized)操作,即申請(qǐng)和釋放信號(hào)量時(shí)無(wú)法被打斷。

信號(hào)量多用于進(jìn)程間的同步與互斥,簡(jiǎn)單的說(shuō)一下同步和互斥的意思

同步:指散步在不同任務(wù)之間的若干程序片斷,它們的運(yùn)行必須嚴(yán)格按照規(guī)定的某種先后次序來(lái)運(yùn)行,這種先后次序依賴于要完成的特定的任務(wù)。

互斥:不同任務(wù)之間的若干程序片斷,當(dāng)某個(gè)任務(wù)運(yùn)行其中一個(gè)程序片段時(shí),其它任務(wù)就不能運(yùn)行它們之中的任一程序片段,只能等到該任務(wù)運(yùn)行完這個(gè)程序片段后才可以運(yùn)行

競(jìng)爭(zhēng):當(dāng)并發(fā)進(jìn)程競(jìng)爭(zhēng)使用同一個(gè)資源的時(shí)候,我們就稱為競(jìng)爭(zhēng)進(jìn)程

顯然同步是一種更為復(fù)雜的互斥,而互斥是一種特殊的同步。也就是說(shuō)互斥是兩個(gè)任務(wù)之間不可以同時(shí)運(yùn)行,他們會(huì)相互排斥,必須等待一個(gè)線程運(yùn)行完畢,另一個(gè)才能運(yùn)行,而同步也是不能同時(shí)運(yùn)行,但他是必須要安照某種次序來(lái)運(yùn)行相應(yīng)的線程(也是一種互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任務(wù)的運(yùn)行順序,即任務(wù)是無(wú)序的,而同步的任務(wù)之間則有順序關(guān)系。

對(duì)于信號(hào)量,可以認(rèn)為是一個(gè)倉(cāng)庫(kù),有兩個(gè)概念,容量和當(dāng)前的貨物個(gè)數(shù)。
P操作從倉(cāng)庫(kù)拿貨,如果倉(cāng)庫(kù)中沒(méi)有貨(if(signal==0)),線程一直等待(wait),直到V操作,往倉(cāng)庫(kù)里添加了貨物,然后從倉(cāng)庫(kù)拿貨(--signal)為了避免P操作一直等待下去,會(huì)有一個(gè)超時(shí)時(shí)間。

V操作,如果倉(cāng)庫(kù)滿了(if(signal==bound)),線程等待(wait),直到有P操作,從倉(cāng)庫(kù)中拿走貨物,有空的位置,往倉(cāng)庫(kù)送貨(++signal)。

創(chuàng)建信號(hào)量,設(shè)置容量,先有V操作,才能P操作。
P操作:貨物個(gè)數(shù)減1,減過(guò)之后,貨物個(gè)數(shù)大于等于0,說(shuō)明已經(jīng)拿到貨物,線程繼續(xù)。否者線程阻塞。

V操作:貨物個(gè)數(shù)加1,加過(guò)之后,貨物個(gè)數(shù)小于等于容量,說(shuō)明添加成功,線程繼續(xù)。否者線程阻塞。

JDK1.5已經(jīng)實(shí)現(xiàn)了Semaphore類,無(wú)須再自己實(shí)現(xiàn)。
構(gòu)造函數(shù)需要指定信號(hào)量的容量,可選指定是否公平,以防止低優(yōu)先級(jí)線程的饑餓狀態(tài)。
Semaphore(int permits) 創(chuàng)建具有給定的許可數(shù)和非公平的公平設(shè)置的 Semaphore。
Semaphore(int permits, boolean fair) 創(chuàng)建具有給定的許可數(shù)和給定的公平設(shè)置的 Semaphore。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/68634.html

相關(guān)文章

  • Python線程專題5:號(hào)量與有邊界的號(hào)量

    摘要:有邊界的信號(hào)量語(yǔ)法創(chuàng)建一個(gè)新的有邊界信號(hào)量。是計(jì)數(shù)器的初始值,如果忽略,將默認(rèn)為信號(hào)量與有邊界的信號(hào)量的區(qū)別的工作方式與完全相同,但操作的次數(shù)不能超過(guò)的操作次數(shù)。信號(hào)量與互斥鎖的微妙差別信號(hào)量可用于發(fā)送信號(hào)。 上一篇文章:Python線程專題4:Timer對(duì)象、Lock對(duì)象、Rlock對(duì)象下一篇文章:Python線程專題6:事件 信號(hào)量與有邊界的信號(hào)量 信號(hào)量是一個(gè)基于計(jì)數(shù)器的同步原...

    Dionysus_go 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<