多執行緒程式設計

2021-07-22 20:16:05 字數 1802 閱讀 4519

特點

相關函式

//初始化乙個互斥量

int pthread_mutex_init(pthread_mutex_t *restrict mutexm ,const

pthread_mutexattr_t * restrict attr);

//登出乙個互斥量

int pthread_mutex_destroy(pthread_mutex_t * mutex);

//給互斥量加鎖

int pthread_mutex_lock(pthread_mutex_t *);

//給互斥量解鎖

int pthread_mutex_unlock(pthread_mutex_t *);

//嘗試給互斥量解鎖(解鎖失敗並不會阻塞執行緒)

int pthread_mutex_trylock(phtread_mutex_t *);

tip特點

相關函式

#include

//讀寫鎖初始化

int pthread_rwlock_init(pthread_rwlock_t *restrict , const

pthread_rwlockattr_t * restrict attr);

//登出讀寫鎖

int pthread_rwlock_destory(pthread_rwlock_t *rwlock);

//讀加鎖

int pthread_rwlock_rdlock(pthread_rwlock_t *);

//寫加鎖

int pthread_rwlock_wrlock(pthread_rwlock_t *);

//解鎖

int pthread_rwlock_unlock(pthread_rwlock_t *)

tips
//讀寫鎖可以用mutex實現

pthread_mutex_t wirte;

pthread_mutex_t read;

int count=0;

void read()

void write()

特點

相關函式

#include

//初始化

int pthread_cond_init(pthread_cond_t *restrict cond,const

pthread_condattr_t * restrict attr);

//登出

int pthread_cond_destroy(pthread_cond_t * cond);

//等待條件

int pthread_cond_wait(pthread_cond_t* restrict cond,

pthread_mutex_t * restrict mutex);

//對乙個以上發出訊號

int pthread_cond_signal(pthread_cond_t * );

//喚醒所有的執行緒

int pthread_cond_broadcast(phtread_cond_t *);

特點

相關函式

#include

//初始化自旋鎖

int pthread_spin_init(pthread_spinlock_t *lock,int pshared);

//登出自旋鎖

int pthread_spin_destory(pthread_spinlock_t *lock)

.....

tips特點

多執行緒程式設計

1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...

多執行緒程式設計

如何編寫執行緒安全的dll 在我的工作中經常會編寫dll,這些dll有個共同的特點就是都有乙個初始化函式,乙個資源釋放函式,其他幾個函式都是核心功能函式。而且這些dll有時會被多個程序同時呼叫,這就牽扯到多程序的多執行緒呼叫dll的問題。有點繞口,以下我根據我實踐中遇到的問題,分四種情況分享一下我解...

多執行緒程式設計

1 執行緒的狀態 建立狀態 準備好了乙個多執行緒的物件 就緒狀態 呼叫了start 方法,等待cpu進行排程 執行狀態 執行run 方法 阻塞狀態 暫時停止執行,可能將資源交給其他執行緒使用 終止狀態 死亡狀態 執行緒銷毀 2 執行緒的常用方法 thread類 取得執行緒名稱 getname thr...