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

信號量對象沒有所有者,你明白了嗎?

開發 前端
既然提到了所謂的高性能版本,我想原作者所表達的意思是:對于爾等 C++ 工人來說,平常使用無妨,但是如果是性能攸關的代碼,頻繁地切換內核上下文所帶來的性能開銷,不可小視。

相較于互斥對象(Mutex)和臨界區對象(Critical Section) ,信號量沒有所有者,它們只有計數。

ReleaseSemaphore 函數將會以指定的數量增加對應信號量對象的計數。 (增加計數這個動作,可能會釋放正在等待的線程)但是釋放信號量的線程不必與最初聲明它的線程相同。這與互斥對象和臨界區對象不同,后者要求聲明線程也是釋放線程。

有些人以類似互斥對象的方式使用信號量: 他們創建一個初始計數為 1 的信號量,并像這樣使用它,如下面代碼所示:

WaitForSingleObject(hSemaphore, INFINITE);
… do stuff ..
ReleaseSemaphore(hSemaphore, 1, NULL);

如果線程在設法釋放信號量之前退出(或崩潰),則信號量計數器不會自動還原。相較于互斥對象,如果所有者線程在持有互斥對象時終止,則釋放互斥對象。因此,對于這種使用模式,使用互斥對象更加合適一些。

如果資源的概念所有權可以跨線程,則信號量非常有用。我們來看下圖:

此技巧不適用于互斥對象或臨界區對象,因為互斥對象和臨界區對象具有所有者,并且只有所有者才能釋放互斥對象或臨界區對象。

請注意,如果 KeepWorking 函數退出并忘記釋放信號量,則計數器不會自動恢復。操作系統不知道信號量”屬于”該工作項。

信號量的另一種常見用法模式與資源保護模式相反:它是資源生成模式。在此模型中,信號量計數通常為零,但在有工作要完成時遞增。

請注意,在這種情況下,甚至沒有信號量的概念”所有者”,除非你將工作項本身(位于工作列表數據結構上的某處)視為所有者。如果 ProcessWork 線程退出,則不希望自動釋放信號量,那會破壞掉內部計數。在這種情況下,信號量是合適的對象。

(生產者/使用者信號量的更高性能版本是 I/O 完成端口。)

總結

既然提到了所謂的高性能版本,我想原作者所表達的意思是:對于爾等 C++ 工人來說,平常使用無妨,但是如果是性能攸關的代碼,頻繁地切換內核上下文所帶來的性能開銷,不可小視。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-06-02 08:14:58

信號量對象線程

2021-04-13 09:20:15

鴻蒙HarmonyOS應用開發

2010-04-21 16:50:31

Unix信號量

2020-11-05 09:59:24

Linux內核信號量

2010-04-21 16:25:13

Unix信號量

2021-09-07 07:53:42

Semaphore 信號量源碼

2010-04-21 16:42:48

Unix信號量

2010-04-21 15:37:38

Unix信號量

2020-09-25 07:34:40

Linux系統編程信號量

2022-12-30 08:35:00

2024-10-29 15:23:45

Python線程安全

2023-12-08 08:38:15

EventLoopAPI瀏覽器

2022-10-10 18:38:56

inert屬性鍵盤

2019-11-19 09:00:38

JavaAND信號量

2009-12-08 12:14:43

2010-03-17 16:36:10

Java信號量模型

2010-07-15 15:32:10

Perl線程

2010-04-21 17:10:25

Unix信號量

2023-12-28 08:43:28

前端算法搜索

2024-01-08 20:05:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩久久久久久久久久久 | 精品亚洲一区二区三区 | 国产精品自拍啪啪 | 中文字幕啪啪 | 午夜激情小视频 | 精品亚洲一区二区三区 | 性高湖久久久久久久久 | 日日夜精品视频 | 少妇一级淫片aaaaaaaaa | 精品av| 久久久久久久综合 | 亚洲在线一区二区 | 久久99视频免费观看 | 午夜小视频在线观看 | 欧美日韩久久久久 | av网站在线看 | www.se91| 久久亚洲一区二区三区四区 | 婷婷色国产偷v国产偷v小说 | 欧美日韩中文字幕在线 | 男女网站在线观看 | 在线观看成人小视频 | 国产一区二区三区在线看 | 成人免费在线播放视频 | 国产黄色在线观看 | 天堂网中文 | 国产免费一区二区 | 天天草视频 | 亚洲精品视频在线观看免费 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 成人在线精品视频 | 免费久久99精品国产婷婷六月 | 亚洲一区 中文字幕 | 在线免费观看黄视频 | 亚洲高清网 | 中文字幕成人av | 日本精品视频一区二区三区四区 | 国产精品视频一二三区 | 久久亚洲一区二区三区四区 | 999国产精品视频 | 一级毛片视频 |