国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

Linux線程同步之信號C語言實例

2020-01-26 15:07:03
字體:
供稿:網(wǎng)友

linux中向某個線程發(fā)送信號,若沒有對該信號的處理函數(shù),則會導(dǎo)致程序結(jié)束。
如下面的程序,創(chuàng)建一個線程,主線程向其發(fā)送一個信號,會導(dǎo)致程序立即結(jié)束

#include <stdio.h> #include <pthread.h>  pthread_t t;  void* run(void* arg) {   while(1)   {     printf("Hello/n");   } }  main() {   pthread_create(&t, 0, run, 0);   pthread_kill(t,34);   while(1); } 


這就要求利用pthread_kill 與 sigwait 通過等待信號來控制線程時應(yīng)添加一個信號處理函數(shù)來實現(xiàn)對線程的控制
改進后的控制線程程序

#include <stdio.h> #include <pthread.h> #include <signal.h>  pthread_t t1, t2; sigset_t sigs;  void handle(int s) { }  void* r1(void* arg) {   int s;   while(1)   {     printf("1/n");     sigwait(&sigs, &s);   } }  void* r2(void* arg) {   while(1)   {     sleep(1);     printf("2/n");     pthread_kill(t1, 34);   } }  main() {   signal(34, handle);   sigemptyset(&sigs);   sigaddset(&sigs, 34);      pthread_create(&t1, 0, r1, 0);   pthread_create(&t2, 0, r2, 0);    while(1); } 

部分效果

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 桦南县| 吉木乃县| 乐亭县| 汉川市| 舞钢市| 滁州市| 叶城县| 广平县| 高尔夫| 广西| 苏尼特右旗| 南岸区| 德保县| 五莲县| 静安区| 盘山县| 库车县| 玉林市| 青冈县| 海原县| 平舆县| 阿拉善盟| 当雄县| 通化县| 界首市| 阳山县| 玉田县| 正定县| 玉山县| 峨眉山市| 正蓝旗| 仙游县| 牡丹江市| 集贤县| 驻马店市| 南陵县| 阿鲁科尔沁旗| 浑源县| 申扎县| 万荣县| 武胜县|