1. 程式人生 > >Linux系統程式設計—程序間同步

Linux系統程式設計—程序間同步

我們知道,執行緒間同步有多種方式,比如:訊號量、互斥量、讀寫鎖,等等。那程序間如何實現同步呢?本文介紹兩種方式:互斥量和檔案鎖。 ##**互斥量mutex** 我們已經知道了互斥量可以用於線上程間同步,但實際上,互斥量也可以用於程序間的同步。為了達到這一目的,可以在pthread_mutex_init初始化之前,修改其屬性為程序間共享。mutex的屬性修改函式主要有以下幾個: 主要應用函式: pthread_mutexattr_t mattr 型別: 用於定義互斥量的屬性 pthread_mutexattr_init函式:初始化一個mutex屬性物件 pthread_mutexattr_destroy函式:銷燬mutex屬性物件 (而非銷燬鎖) pthread_mutexattr_setpshared函式:修改mutex屬性。 **int pthread_mutexattr_setpshared(pthread_mutexattr_t \*attr, int pshared);** 我們重點看第二個引數:pshared,它有以下兩個取值: **執行緒鎖:**PTHREAD_PROCESS_PRIVATE (mutex的預設屬性即為執行緒鎖,程序間私有) **程序鎖:**PTHREAD_PROCESS_SHARED 要想實現程序間同步,需要將mutex的屬性改為**PTHREAD_PROCESS_SHARED**。 ``` #