linux 互斥使用

2021-04-25 05:41:10 字數 1138 閱讀 9011

#include 

#include

#include

#include

#include

pthread_mutex_t mutex = pthread_mutex_initializer;

int lock_var;

time_t end_time;

int sum;

void pthread1(void *arg);

void pthread2(void *arg);

void pthread3(void *arg);

int main(int argc, char *argv)

void pthread1(void *arg)

else

printf("pthread1:pthread1 lock the variable/n");

for(i=0;i<2;i++)

if(pthread_mutex_unlock(&mutex)!=0) //unlock

else

printf("pthread1:pthread1 unlock the variable/n");

sleep(1);}}

void pthread2(void *arg)

else

printf("pthread2:pthread2 got lock.the variable is %d/n",lock_var);

if(pthread_mutex_unlock(&mutex)!=0)//unlock

else

printf("pthread2:pthread2 unlock the variable/n");

}sleep(1);}}

void pthread3(void *arg)

else

printf("pthread3:pthread3 got lock.the variable is %d/n",lock_var);

if(pthread_mutex_unlock(&mutex)!=0)

else

printf("pthread3:pthread2 unlock the variable/n");

}sleep(3);

}*/}

Linux執行緒同步(一)之使用互斥量(互斥鎖)

當多個控制線程共享相同的記憶體時,需要確保每個執行緒看到一致的資料檢視。如果每個執行緒使用的變數都是其他執行緒不會讀取或修改的,那麼就不存在一致性問題。同樣地,如果變數是唯讀的,多個執行緒同時讀取該量也不會有一致性問題。但是,當某個執行緒可以修改變數,而其他執行緒也可以讀取或者修改這個變數的時候,就...

Linux 多執行緒互斥量互斥

同乙個程序中的多個執行緒共享所在程序的記憶體資源,當多個執行緒在同一時刻同時訪問同一種共享資源時,需要相互協調,以避免出現資料的不一致和覆蓋等問題,執行緒之間的協調和通訊的就叫做執行緒的同步問題,執行緒同步的思路 讓多個執行緒依次訪問共享資源,而不是並行 mutex被建立時可以有初始值,表示mute...

linux 互斥機制

1.必須先了解的基本概念 1.1臨界區 一段 在程式中多次被執行,每次執行的過程,我們稱之為 的執行路徑。當不只乙個,及兩個或以上 路徑要競爭乙個共同的資源的時候,該 段就是臨界區。那麼在有乙個線 程進入後其他所有試圖訪問此臨界區的執行緒將被掛起,並一直持續到進入臨界區的執行緒離開。1.2互斥機制 ...