銀行應用中,乙個帳號給另乙個帳號匯款時,如果另乙個帳號又有讀取存款的操作,就會用到互斥鎖。
使用互斥鎖之前的簡單程式如下:
// 這個程式使用鎖來模擬銀行的訪問款
#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是一種簡單的加鎖方法,這個互斥鎖只有兩種狀態,那就是上鎖和解 鎖,可以把互斥鎖看作是某種意義上的全域性變數。在某一時刻,只能有乙個執行緒取得這個互斥上的鎖,擁有上鎖狀態的執行緒可以對共享資源進行...