Linux多執行緒同步 訊號量

2021-07-10 21:02:37 字數 1965 閱讀 5997

同步主線程與子執行緒

子執行緒之間的同步

使用單個訊號量

#include 

#include

#include

#include

#include

#include

void* ret_result_thread1;

void* ret_result_thread2;

sem_t *sem;

void* thread1func(void* arg)

void* thread2func(void* arg)

int main(int argc, char** argv)

if( (ret2 = pthread_create(&thread2,null,thread2func,null)) != 0)

printf("main thread end\n");

pthread_join(thread1,ret_result_thread1);

pthread_join(thread2,ret_result_thread2);

sem_close(sem);

sem_unlink(semname);

return

0;}

使用兩個訊號量
test.c

主線程執行結束後,執行緒1開始執行,休眠2秒後開始執行執行緒2

Linux 多執行緒訊號量同步

p操作 v操作 include sem t sem 定義訊號量 sem init 初始化訊號量 sem wait 獲取訊號量,訊號量的數值 1 訪問共享資源 sem post 釋放乙個訊號量,及訊號量的數值 1 sem destroy 如果不再使用訊號量,則銷毀訊號量函式和posix ipc的訊號量...

Linux 多執行緒訊號量同步

p操作 v操作 include sem t sem 定義訊號量 sem init 初始化訊號量 sem wait 獲取訊號量,訊號量的數值 1 訪問共享資源 sem post 釋放乙個訊號量,及訊號量的數值 1 sem destroy 如果不再使用訊號量,則銷毀訊號量函式和posix ipc的訊號量...

訊號量同步多執行緒

windows.waitforsingleobject feventhandle,180000 feventhandle windows.createevent nil,false,false,pchar feventname if feventhandle thandle nil then win...