程序 執行緒的同步

2021-10-03 21:41:43 字數 1591 閱讀 7345

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來寫,不准用其他的類庫,於是工作的重點就轉移到了怎樣構...