自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)簡單的Unix信號量

系統(tǒng) 其他OS
我們在文章中主要對Unix信號量的一些知識進行講解,Unix信號量是防止兩個或多個進程同時訪問共享資源的一種機制。

Unix信號量(SEMAPHORE)則是防止兩個或多個進程同時訪問共享資源的一種機制。在Unix信號量機制實現(xiàn)之前,通常采用加鎖文件的方法。信號量(Semaphore),有時被稱為信號燈,是在多線程環(huán)境下使用的一種設(shè)施,是可以用來保證兩個或多個關(guān)鍵代碼段不被并發(fā)調(diào)用。在進入一個關(guān)鍵代碼段之前,線程必須獲取一個信號量;一旦該關(guān)鍵代碼段完成了,那么該線程必須釋放信號量。

其它想進入該關(guān)鍵代碼段的線程必須等待直到第一個線程釋放信號量。為了完成這個過程,需要創(chuàng)建一個信號量VI,然后將Acquire Semaphore VI以及Release Semaphore VI分別放置在每個關(guān)鍵代碼段的首末端。確認這些信號量VI引用的是初始創(chuàng)建的信號量。UNIXSYSTEMV以一個長整數(shù)的鍵值作為Unix信號量集合的唯一標識,Unix信號量通常由下列元素組成:

①信號量的值

②操作該信號量的最后一個進程的進程標識

③等待增加該信號量的值的進程數(shù)

④等待該信號量的值為0的進程數(shù)

與之有關(guān)的系統(tǒng)調(diào)用如下:
 

  1. #include <sys/types.h>   
  2. #include <sys/ipc.h>   
  3. #include <sys/sem.h>   
  4. int semget(key,count,flags)   
  5. /*獲取信號量集合的標識符*/   
  6. key_tkey; /*信號量集合的鍵*/   
  7. intcount; /*信號量集合中元素個數(shù)*/   
  8. intflags; /*任選參數(shù)*/   
  9. /*返回信號量集合標識符,若出錯則返回-1*/   
  10. int semop(sid,ops,nops) /*信號量操作*/   
  11. int sid; /*信號量集合標識符*/   
  12. struct sembuf *ops; /*信號量操作結(jié)構(gòu)的指針*/   
  13. intnops; /*信號量操作結(jié)構(gòu)的個數(shù)*/   
  14. /*返回運算完成前該組信號量中最后一個被運算的信號量的   
  15. 值,若出錯則返回-1*/   
  16. int semctl(sid,semnum,cmd,arg)   
  17. /*控制信號量操作*/   
  18. intsid; /*信號量集合標識符*/   
  19. intsemnum; /*信號量元素編號*/   
  20. intcmd; /*控制命令*/   
  21. union semun{   
  22. intval;   
  23. struct semid_ds *buf;   
  24. ushort*array;} arg; /*命令參數(shù)*/  

Unix信號量元素組成部分我們就講解到這里了。

【編輯推薦】

  1. 講解Unix線程同步
  2. 靈活運用Unix 線程知識
  3. 教你Unix消息隊列的應(yīng)用
  4. 教你如何創(chuàng)建Unix消息隊列
  5. 知識講解Unix 消息隊列
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-21 16:50:31

Unix信號量

2010-04-21 16:42:48

Unix信號量

2010-04-21 15:37:38

Unix信號量

2010-04-21 17:10:25

Unix信號量

2021-04-13 09:20:15

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

2020-11-05 09:59:24

Linux內(nèi)核信號量

2020-09-25 07:34:40

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

2021-09-07 07:53:42

Semaphore 信號量源碼

2009-12-08 12:14:43

2024-10-29 15:23:45

Python線程安全

2020-11-10 15:25:26

SemaphoreLinux翻譯

2017-05-11 14:05:25

Consul分布式信號量

2021-02-03 20:10:29

Linux信號量shell

2010-07-15 15:32:10

Perl線程

2010-03-17 16:36:10

Java信號量模型

2019-11-19 09:00:38

JavaAND信號量

2025-04-16 08:50:00

信號量隔離線程池隔離并發(fā)控制

2010-03-16 17:52:27

Java多線程信號量

2016-11-23 16:08:24

Python處理器分布式系統(tǒng)

2023-08-28 07:04:17

點贊
收藏

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