linux多執行緒程式設計 使用互斥鎖的簡單程式

2021-06-27 14:46:23 字數 803 閱讀 2492

銀行應用中,乙個帳號給另乙個帳號匯款時,如果另乙個帳號又有讀取存款的操作,就會用到互斥鎖。

使用互斥鎖之前的簡單程式如下:

// 這個程式使用鎖來模擬銀行的訪問款

#include #include using namespace std;

struct data ;

void* changevalue(void*);

void* print(void*);

int main()

void* changevalue(void* data_in)

void* print(void* data_in)

pthread_exit(null);

}

加互斥鎖的程式

// 這個程式使用鎖來模擬銀行的訪問款

#include #include using namespace std;

struct data ;

void* changevalue(void*); // 函式最後都定義為這樣的格式

void* print(void*);

pthread_mutex_t lock; // 定義全域性互斥鎖,否則不能在函式中使用

int main()

void* changevalue(void* data_in)

void* print(void* data_in)

pthread_mutex_unlock(&lock);

pthread_exit(null);

}

Linux多執行緒程式設計 執行緒互斥鎖

通過下面的練習加深對執行緒的概念的理解,同時明確執行緒的控制。從而進一步了解執行緒的互斥,並學會利用pthread庫。定義乙個用於互斥的互斥鎖 和乙個主函式和兩個子執行緒都能訪問的共享變數,乙個主函式和兩個用來建立子執行緒的子函式 在主函式中定義兩個子執行緒id的變數,初始化互斥鎖,建立對應函式的子...

多執行緒程式設計 互斥鎖

多執行緒程式設計 互斥鎖 1 引言 互斥鎖,是一種訊號量,常用來防止兩個程序或執行緒在同一時刻訪問相同的共享資源。可以保證以下三點 1 原子性 把乙個互斥量鎖定為乙個原子操作,這意味著作業系統 或pthread函式庫 保證了如果乙個執行緒鎖定了乙個互斥量,沒有其他執行緒在同一時間可以成功鎖定這個互斥...

linux多執行緒程式設計之互斥鎖

執行緒的同步問題 乙個程序中的多個執行緒是共享同一段資源的,由於執行緒對資源的競爭引出了鎖。其中mutex是一種簡單的加鎖方法,這個互斥鎖只有兩種狀態,那就是上鎖和解 鎖,可以把互斥鎖看作是某種意義上的全域性變數。在某一時刻,只能有乙個執行緒取得這個互斥上的鎖,擁有上鎖狀態的執行緒可以對共享資源進行...