欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年04月27日 10:40:18   投稿:junjie  
這篇文章主要介紹了Linux線程同步之信號C語言實例,本文直接給出代碼實例,需要的朋友可以參考下

linux中向某個線程發(fā)送信號,若沒有對該信號的處理函數(shù),則會導致程序結(jié)束。
如下面的程序,創(chuàng)建一個線程,主線程向其發(fā)送一個信號,會導致程序立即結(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 通過等待信號來控制線程時應添加一個信號處理函數(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); 
} 

部分效果

相關文章

  • C語言實現(xiàn)經(jīng)典排序算法的示例代碼

    C語言實現(xiàn)經(jīng)典排序算法的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)經(jīng)典排序算法中的冒泡排序、選擇排序、插入排序、希爾排序,文中的示例代碼講解詳細,需要的可以參考一下
    2022-08-08
  • C++分步實現(xiàn)職工管理系統(tǒng)詳解

    C++分步實現(xiàn)職工管理系統(tǒng)詳解

    這篇文章主要為大家詳細介紹了基于C++實現(xiàn)職工管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-10-10
  • 帶你從頭學習C++的封裝

    帶你從頭學習C++的封裝

    這篇文章主要為大家從頭學習了C++的封裝,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語言編寫五子棋游戲

    C語言編寫五子棋游戲

    這篇文章主要為大家詳細介紹了C語言編寫五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Windows10配置VSCode C++環(huán)境(超詳細,面向小白以及大佬們)

    Windows10配置VSCode C++環(huán)境(超詳細,面向小白以及大佬們)

    這篇文章主要介紹了Windows10配置VSCode C++環(huán)境(超詳細,面向小白以及大佬們),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 最新評論