1. 程式人生 > >Linux 進程間通信 --信號量

Linux 進程間通信 --信號量

linux 而在 標識 控制 信號量 文件 描述 共享 請求

一、信號量

  信號量是一個用來描述臨界資源的資源個數的計數器。
  信號量的本質是一種數據操作鎖,它本身不具有數據交換的功能,而是通過控制其他的通信資源(文件、外部設備等)來實現進程間通信,

他本身更只是一種外部資源的標識。信號量在此過程中負責數據操作的同步、互斥等功能。
  當請求 一個使用信號量來表示 的資源時,進程需要先讀取信號量的值來判斷資源是否可用。大於0,資源可以請求;等於0,無資源可用,

進程會進入睡眠狀態直至資源可用。

  當進程不再使用一個使用信號量控制的共享資源時,信號量的值+1,對信號量的值進行的增減都是原子操作,這是由於信號量的主要作用

是維護資源的互斥或多進程的同步訪問。而在信號量的創建及初始化上,不能保證操作均為原子性。

Linux 進程間通信 --信號量