int
pthread_mutex_init
(pthread_mutex_t *restrict mutex,
const pthread_mutexattr_t * restrict arr)
;int
pthread_mutex_destroy
(pthread_mutex_t *mutex)
;int
pthread_mutex_lock
(pthread_mutex_t *mutex)
;int
pthread_mutex_unlock
(pthread_mutex_t *mutex)
;
#include
void
spin_lock_init
(spinlock_t *lock)
;void
spin_lock
(spinlock_t *lock)
;void
spin_unlock
(spinlock_t *lock)
;
讀寫鎖
#include
intpthread_rwlock_init
(pthread_rwlock_t *restrict rwlock,
const pthread_rwlockattr_t *restrict attr)
;int
pthread_rwlock_destroy
(pthread_rwlock_t *rwlock)
;int
pthread_rwlock_rdlock
(pthread_rwlock_t *rwlock)
;int
pthread_rwlock_wrlock
(pthread_rwlock_t *rwlock)
;int
pthread_rwlock_unlock
(pthread_rwlock_t *rwlock)
;
#include
<
intsem_init
(sem_t *sem,
int pshared,
unsigned
int value)
;其中sem是要初始化的訊號量,pshared表示此訊號量是在程序間共享還是執行緒間共享,value是訊號量的初始值。
intsem_destroy
(sem_t *sem)
;其中sem是要銷毀的訊號量。只有用sem_init初始化的訊號量才能用sem_destroy銷毀。
intsem_wait
(sem_t *sem)
;等待訊號量,如果訊號量的值大於0
,將訊號量的值減1
,立即返回。如果訊號量的值為0
,則執行緒阻塞。相當於p操作。成功返回0
,失敗返回-
1。int
sem_post
(sem_t *sem)
; 釋放訊號量,讓訊號量的值加1。相當於v操作。
程序執行緒間同步
一 posix訊息佇列 通過固定名稱來建立和引用訊息佇列 1.可以認為是乙個訊息鍊錶,有足夠的許可權的執行緒可以往佇列中放置和獲取訊息。2.可指定優先順序 在空佇列放置訊息時候能夠產生乙個訊號或啟動乙個執行緒 3.建立訊息佇列mq open mq close 關閉 並不刪除 mq unlink 刪除...
執行緒 程序間同步
1 競爭條件 兩個或多個程序 執行緒讀寫某些共享資料時,結果取決於其cpu排程的執行次序,這種現象稱為競爭條件 2 互斥 以某種手段確保當乙個程序 執行緒在使用乙個共享變數或檔案時,其他程序 執行緒不能做同樣的操作 3 臨界區 把對共享記憶體進行訪問的程式片段稱為臨界區,如果能使得兩個程序 執行緒不...
執行緒 程序同步問題
計算機網路課程實驗要做乙個c s模型的檔案傳遞程式。本來socket程式設計我還是比較熟悉的,因為以前用vc mfc編過乙個網路遊戲 網路五子棋,並通過設定nat與新加坡的同學對戰了一把。這次的程式本來更簡單,但是老師要用純windows api來寫,不准用其他的類庫,於是工作的重點就轉移到了怎樣構...