成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自動重置事件只是一個愚蠢的信號量

開發(fā) 前端
對于一個手動重置的事件對象,它很容易理解:當(dāng)事件未激發(fā)時,在此事件上的等待將一直掛起,而當(dāng)事件被激發(fā)時,在此事件對象上的等待將會立即返回。

當(dāng)我們調(diào)用 CreateEvent 函數(shù)創(chuàng)建一個事件對象的時候,我們可以通過參數(shù)來指定這個事件對象是自動重置的,還是手動重置的。

對于一個手動重置的事件對象,它很容易理解:當(dāng)事件未激發(fā)時,在此事件上的等待將一直掛起,而當(dāng)事件被激發(fā)時,在此事件對象上的等待將會立即返回。上面的工作原則和有多少個線程正在等待此對象沒有任何關(guān)系。所有線程對此對象的等待操作都是一致的,并且事件對象的狀態(tài)也不會受到等待它的線程數(shù)量影響。

對于一個自動重置的事件對象,事情開始變得復(fù)雜了。

理解它的工作原理的最簡單方法是:將它看做是一個最大計數(shù)為 1 的信號量。

此話怎講?

當(dāng)事件未激發(fā)時,在此事件上的等待的線程將一直掛起,而當(dāng)事件被激發(fā)時,僅會只有一個等待線程結(jié)束等待,并且事件對象將會自動重置其狀態(tài)為未激發(fā)態(tài)。結(jié)果就是:剩下的其他線程將會繼續(xù)等待。從我們之前對 PulseEvent 的討論來看,你可能已經(jīng)知道了,如果有多個等待線程,則不確定將釋放哪個等待線程。

使用自動重置事件的陷阱在于:你設(shè)置了已處于激發(fā)態(tài)的事件。由于事件只有兩種狀態(tài)(設(shè)置和重置),因此設(shè)置已設(shè)置的事件不起作用。如果使用事件來控制資源生產(chǎn)者/使用者模型,則設(shè)置已處于激發(fā)態(tài)的事件將導(dǎo)致你看起來 “丟失:了令牌。

請考慮以下場景模式。

但是,如果時機沒有完全出來怎么辦?如果使用者線程完成工作有點慢(或者生產(chǎn)者線程生成它的速度有點快),該怎么辦:

請注意,生成者生成了三個工作項,但使用者只執(zhí)行了其中的兩個。第三個 SetEvent 沒有效果,因為事件已經(jīng)設(shè)置好了。(如果嘗試將信號量的令牌計數(shù)增加到超過其最大值,則會遇到相同的問題。)如果希望喚醒數(shù)與集數(shù)匹配,則需要使用最大令牌計數(shù)與將支持的最大未完成工作項數(shù)一樣高的信號量。

總結(jié)

了解你手上工具的使用方法,更加需要了解其局限性。永遠在正確的場景下使用正確的工具,這確實挺難的。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-08-30 08:03:22

信號量Go

2010-04-21 16:25:13

Unix信號量

2010-04-21 16:42:48

Unix信號量

2021-04-13 09:20:15

鴻蒙HarmonyOS應(yīng)用開發(fā)

2010-04-21 16:50:31

Unix信號量

2020-11-05 09:59:24

Linux內(nèi)核信號量

2021-09-07 07:53:42

Semaphore 信號量源碼

2010-04-21 15:37:38

Unix信號量

2020-09-25 07:34:40

Linux系統(tǒng)編程信號量

2009-12-08 12:14:43

2024-10-29 15:23:45

Python線程安全

2021-02-03 20:10:29

Linux信號量shell

2017-05-11 14:05:25

Consul分布式信號量

2020-11-10 15:25:26

SemaphoreLinux翻譯

2019-11-19 09:00:38

JavaAND信號量

2010-03-17 16:36:10

Java信號量模型

2010-07-15 15:32:10

Perl線程

2010-04-21 17:10:25

Unix信號量

2023-07-11 13:34:19

Rust開發(fā)軟件

2016-11-23 16:08:24

Python處理器分布式系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美黄色小视频 | 欧美日韩国产精品一区二区 | 国产99久久精品一区二区永久免费 | 久久久久一区二区 | 国产精品毛片一区二区在线看 | 久久久国产一区二区三区 | 国产乱码精品一品二品 | 亚洲欧洲在线观看视频 | 欧美久久电影 | 天堂色区| 亚洲精品乱码久久久久久久久 | 国产精品久久久久久久免费大片 | 午夜99| 国产乱码精品一区二区三区五月婷 | 欧美乱淫视频 | 成人免费视频网站 | 国产成人高清在线观看 | 亚洲网站在线观看 | 91原创视频在线观看 | 亚洲精品电影在线观看 | 99精品网站 | 欧美成视频在线观看 | 视频一区二区中文字幕日韩 | 久久久精品一区 | 2021狠狠干 | 国产精品久久久久久久模特 | 黄色在线免费观看 | 成年人免费看的视频 | 超碰97人人人人人蜜桃 | 免费一看一级毛片 | 亚洲一区国产 | 一区二区三区播放 | 日韩快播电影网 | 黄色网一级片 | 色桃网| 亚洲一区在线日韩在线深爱 | 在线视频亚洲 | 亚洲欧美国产毛片在线 | 粉嫩av久久一区二区三区 | 91大神在线看 | 不用播放器看的av |