寫者執行緒執行的執行緒執行函式
void *set_th(void *arg)
s->r_wait = 0;
pthread_mutex_unlock(&s->rm);
pthread_cond_broadcast(&s->rc);
//寫者執行緒等待阻塞
//等待讀者縣城讀取完資料後通知喚醒
//然後繼續寫入資料
pthread_mutex_lock(&s->wm);
s_w_wait = 1;
pthread_cond_wait(&s->wc,&s->wm);
pthread_mutex_unlock(&s->wm);
} return (void *)0;
}//讀者執行緒執行的執行緒執行函式
void *get_th(void *arg)
s->w_wait = 0;
pthread_mutex_unlock(&s->wm);
pthread_cond_broadcast(&s->wc);
} return (void *)0;
}int main(void)
if((err = pthread_create(&wth,null,set_th,(void*)&s)) != 0)
pthread_join(rth,null);
pthread_join(wth,null);
pthread_mutex_destroy(&s.rm);
pthread_mutex_destroy(&s.wm);
pthread_cond_destroy(&s.rc);
pthread_cond_destroy(&s.wc);
return 0;
}編譯:gcc -lpthread ***.c -o test
執行:./test
0xb700eb70 write data:100
0xb780fb70(1000) read data:200;
Linux學習筆記(8)
11.管理網路 1.ip基礎知識 1.ipv4 2進製32位 10進製 172.25.34.1 255.255.255.0 255.255.255.0 子網掩碼 子網掩碼255位對應的ip位為網路位 子網掩碼0對應的ip位為主機位 同一網段的ip可以互相通訊,前三位一樣的為同一網段的ip ip位址 ...
Java執行緒學習筆記(8) 執行緒間通訊
多個執行緒併發執行時,在預設情況下cpu是隨機切換執行緒的,如果我們希望他們有規律的執行,就可以使用通訊,例如每個執行緒執行一次列印 package threadtest public class demo12 catch interruptedexception e start new threa...
Linux 執行緒 2(執行緒同步)筆記
二 讀寫鎖 三 條件變數 三 訊號量 同步即協同步調,按預定的先後順序執行 由於執行緒共享程序的資源和位址空間,當多個執行緒對同一共享資源進行操作時,為防止資料混亂,因此在對這些資源進行操作時,必須考慮到執行緒間資源訪問的同步和互斥的問題。這裡介紹 posix 中線程同步的方法,主要有互斥鎖 讀寫鎖...