Linux 多執行緒同步(互斥量)

2021-06-09 13:17:43 字數 1526 閱讀 3553

/*threadrace.c*/

#include #include #include #include int myglobal;

pthread_mutex_t work_mutex = pthread_mutex_initializer //定義互斥量

//初始化互斥量

pthread_mutex_init(&work_mutex, null);

void *

thread_function (void *arg)

return null;

}int

main (void)

sleep(10);

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

if (pthread_join (mythread, null))

printf ("\nmyglobal equals %d\n", myglobal);

exit (0);

}

例子2:

#include #include #include #include #include #include void * thread_function(void * arg);

pthread_mutex_t work_mutex;

#define work_size 1024

char work_area[work_size];

int time_to_exit = 0;

int main(int argc, char const *argv)

res = pthread_create(&pthread,null,thread_function,null);

if (res != 0)

pthread_mutex_lock(&work_mutex);//

printf("input a text. enter end to finish!\n");

while(!time_to_exit)

else

break;

} }pthread_mutex_unlock(&work_mutex);

// printf("\nwaiting...");

res = pthread_join(pthread,&thread_result);

if (res != 0)

printf("son thread exit success!\n");

pthread_mutex_destroy(&work_mutex);

exit(exit_success);

}

void * thread_function(void * arg)

time_to_exit = 1;

work_area[0] = '\0';

pthread_mutex_unlock(&work_mutex);

pthread_exit(null);

}

臨界資源是work_area中的內容。

Linux多執行緒 使用互斥量同步執行緒

原部落格 linux多執行緒 使用訊號量同步執行緒 只有子執行緒結束了對輸入的處理和統計後,主線程才能繼續執行的問題。一 什麼是互斥量 互斥量是另一種用於多執行緒中的同步訪問方法,它允許程式鎖住某個物件,使得每次只能有乙個執行緒訪問它。為了控制對關鍵 的訪問,必須在進入這段 之前鎖住乙個互斥量,然後...

Linux多執行緒 使用互斥量同步執行緒

linux多執行緒 使用訊號量同步執行緒 只有子執行緒結束了對輸入的處理和統計後,主線程才能繼續執行的問題。一 什麼是互斥量 互斥量是另一種用於多執行緒中的同步訪問方法,它允許程式鎖住某個物件,使得每次只能有乙個執行緒訪問它。為了控制對關鍵 的訪問,必須在進入這段 之前鎖住乙個互斥量,然後在完成操作...

Linux多執行緒 使用互斥量同步執行緒

linux多執行緒 使用訊號量同步執行緒 只有子執行緒結束了對輸入的處理和統計後,主線程才能繼續執行的問題。一 什麼是互斥量 互斥量是另一種用於多執行緒中的同步訪問方法,它允許程式鎖住某個物件,使得每次只能有乙個執行緒訪問它。為了控制對關鍵 的訪問,必須在進入這段 之前鎖住乙個互斥量,然後在完成操作...