青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Posix Threads 筆記9 -- Threads and Signals

Posted on 2009-11-17 19:56 Prayer 閱讀(314) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX
#include <signal.h>

int pthread_sigmask(int how, const sigset_t *restrict set,
sigset_t *restrict oset);
                                                                      Returns: 0 if OK, error number on failure

說明:
1. 每個線程都有自己獨立的信號屏蔽,但卻共享進程的信號處理。這意味著在一個線程中改變信號處理,會影響到其他線程。
2. 創建新線程時,新線程繼承主線程的當前信號屏蔽。
3. 當信號是由于硬件錯誤或者定時器溢出而引起時,信號被發往引起該信號的線程;其他情況下,信號送往進程的隨意一個線程。
4. pthread_sigmask 是多線程下的信號屏蔽設置函數,參數與 sigprocmask 類似。后者在多線程環境下,行為未定義。



#include <signal.h>

int sigwait(const sigset_t *restrict set, int *restrict signop);
                                                                   Returns: 0 if OK, error number on failure

說明:
1. 使用 sigwait 等待特定信號前,首先要屏蔽該信號,進入sigwait 后會自動解除阻塞,sigwait 返回前,重新恢復信號屏蔽。
2. sigwait 提供了異步信號的同步處理方式—— 可以在每個線程中屏蔽信號,而選特定的一個或多個線程去處理信號。在線程的上下文中處理信號,而不在傳統的打斷線程執行的信號句柄。
3. 當有多個線程都調用 sigwait 等待同一信號時,信號到達時,只有一個線程的 sigwait 會返回。另外當信號句柄與sigwait 同時存在時,信號的處理取決于實現,但兩者只能取其一。
4. APUEv2 給出的例子如下:

#include "apue.h"
#include <pthread.h>

int quitflag; /* set nonzero by thread */
sigset_t mask;

pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t wait = PTHREAD_COND_INITIALIZER;

void *
thr_fn(void *arg)
{
int err, signo;

for (;;) {
err = sigwait(&mask, &signo);
if (err != 0)
err_exit(err, "sigwait failed");
switch (signo) {
case SIGINT:
printf("\ninterrupt\n");
break;

case SIGQUIT:
pthread_mutex_lock(&lock);
quitflag = 1;
pthread_mutex_unlock(&lock);
pthread_cond_signal(&wait);
return(0);

default:
printf("unexpected signal %d\n", signo);
exit(1);
}
}
}
int
main(void)
{
int err;
sigset_t oldmask;
pthread_t tid;

sigemptyset(&mask);
sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGQUIT);
if ((err = pthread_sigmask(SIG_BLOCK, &mask, &oldmask)) != 0)
err_exit(err, "SIG_BLOCK error");

err = pthread_create(&tid, NULL, thr_fn, 0);
if (err != 0)
err_exit(err, "can't create thread");

pthread_mutex_lock(&lock);
while (quitflag == 0)
pthread_cond_wait(&wait, &lock);
pthread_mutex_unlock(&lock);

/* SIGQUIT has been caught and is now blocked; do whatever */
quitflag = 0;

/* reset signal mask which unblocks SIGQUIT */
if (sigprocmask(SIG_SETMASK, &oldmask, NULL) < 0)
err_sys("SIG_SETMASK error");
exit(0);
}



#include <signal.h>

int pthread_kill(pthread_t thread, int signo);

                                                                       Returns: 0 if OK, error number on failure

說明:
1. 該函數用來向線程發送信號。
2. 如果信號默認會終止進程,則向線程發送該信號會終止線程所在的進程。
3. 定時器(alarm_timer)是進程資源,進程的所有線程共享同一套定時器。所以在線程中同時設置定時器會相互干擾。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩精品二区| 模特精品裸拍一区| 国产综合色产在线精品| 国产精品无码专区在线观看| 国产精品入口福利| 国际精品欧美精品| 亚洲高清在线观看| 一区二区三区精品久久久| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 日韩视频专区| 一本色道婷婷久久欧美| 午夜精品福利一区二区三区av| 欧美亚洲一级片| 欧美成人a∨高清免费观看| 亚洲品质自拍| 亚洲一区欧美| 鲁鲁狠狠狠7777一区二区| 欧美日韩国产一区二区三区地区 | 亚洲国产精品久久久久秋霞不卡| 亚洲看片一区| 羞羞漫画18久久大片| 欧美mv日韩mv亚洲| 一区二区三区不卡视频在线观看 | 久久久久国内| 91久久精品一区二区三区| 亚洲视频一区在线| 久久久久久穴| 国产精品久久久久一区二区三区 | 午夜精彩视频在线观看不卡 | 亚洲国产成人精品视频| 亚洲欧美综合网| 欧美激情va永久在线播放| 亚洲女同精品视频| 欧美乱妇高清无乱码| 国产喷白浆一区二区三区| 日韩系列在线| 亚洲精品四区| 久久久www| 亚洲精品日韩精品| 久久人人97超碰国产公开结果| 国产精品久久久久9999| 亚洲精品影院在线观看| 久久―日本道色综合久久| 在线视频精品一| 欧美国产日韩一区二区三区| 精品51国产黑色丝袜高跟鞋| 欧美影院在线| 中文网丁香综合网| 欧美日韩国产一区二区| 91久久亚洲| 麻豆国产va免费精品高清在线| 亚洲一区免费观看| 国产精品久久国产精麻豆99网站| 亚洲最新色图| 亚洲精品免费电影| 欧美国产日本在线| 亚洲三级免费| 91久久精品www人人做人人爽| 免费成年人欧美视频| 影音欧美亚洲| 欧美91精品| 欧美阿v一级看视频| 亚洲美女视频在线免费观看| 亚洲高清精品中出| 欧美**字幕| 日韩天堂在线观看| 亚洲精品一二三| 欧美日韩亚洲系列| 亚洲在线一区二区| 亚洲一区二区在线观看视频| 国产欧美日韩三级| 久久久一区二区| 久久在线精品| 在线视频日韩精品| 亚洲一区二区三区午夜| 国产三级精品在线不卡| 麻豆精品91| 欧美日韩国产精品一区二区亚洲 | 久久久久国产精品一区三寸 | 国产一区二区三区免费观看| 久久国产欧美精品| 美女在线一区二区| 亚洲网站在线看| 欧美亚洲视频在线观看| 亚洲激情电影在线| 一二三区精品福利视频| 国产一区二区三区黄视频| 免费在线成人av| 欧美日本在线视频| 久久国产精品网站| 欧美劲爆第一页| 久久av一区二区三区亚洲| 久久亚洲风情| 亚洲欧美日韩在线综合| 老司机成人在线视频| 亚洲一区二区三区高清| 国产乱子伦一区二区三区国色天香| 久久久精品性| 欧美日韩1区| 久久亚洲精品欧美| 欧美四级在线观看| 欧美www在线| 国产精品亚洲综合久久| 免费成人黄色av| 国产精品国产三级欧美二区| 欧美暴力喷水在线| 国产欧美精品| 99re6这里只有精品| 在线免费不卡视频| 亚洲欧美在线网| 亚洲视屏在线播放| 欧美国产日韩一区二区在线观看| 欧美一区二区在线| 欧美日韩免费观看一区三区| 欧美不卡一卡二卡免费版| 国产欧美精品一区二区三区介绍| 亚洲欧洲精品一区二区精品久久久| 国产一区二区三区四区在线观看| 99re8这里有精品热视频免费| 亚洲欧洲三级电影| 久久婷婷国产综合尤物精品| 久久久国产精品亚洲一区 | 在线色欧美三级视频| 亚洲在线视频免费观看| 亚洲无限av看| 欧美日韩国产在线播放| 亚洲高清不卡| 亚洲国产精品一区二区三区| 久久露脸国产精品| 免费成人av在线| 亚洲国产精品高清久久久| 久久人人97超碰人人澡爱香蕉 | 亚洲五月六月| 亚洲在线观看免费视频| 国产精品yjizz| 亚洲调教视频在线观看| 先锋影音网一区二区| 国产嫩草一区二区三区在线观看| 亚洲一区二区网站| 久久精品综合| 精品成人在线观看| 毛片基地黄久久久久久天堂| 久久免费99精品久久久久久| 黄色av成人| 久久综合九色综合网站| 欧美国产视频一区二区| 亚洲欧洲综合另类在线| 欧美日本久久| 亚洲色图自拍| 久久久久久久一区| 亚洲国产清纯| 欧美日韩在线视频一区| 亚洲影院一区| 欧美成人自拍| 亚洲一级片在线观看| 国产自产在线视频一区| 欧美成人免费在线| 亚洲午夜精品国产| 麻豆视频一区二区| 午夜精品福利在线观看| 午夜久久资源| 国产在线观看91精品一区| 裸体女人亚洲精品一区| 亚洲毛片在线| 久久国产精彩视频| 亚洲黑丝一区二区| 国产精品盗摄一区二区三区| 欧美一进一出视频| 亚洲人成在线播放网站岛国| 亚洲欧美在线网| 亚洲电影免费观看高清完整版在线观看 | 99re6这里只有精品| 久久精品一区二区国产| 亚洲人成啪啪网站| 国产欧美欧美| 欧美伦理a级免费电影| 午夜精品久久久久| 亚洲激情在线观看视频免费| 欧美在线精品免播放器视频| 亚洲片国产一区一级在线观看| 国产精品久久久久久久久久久久久| 欧美一区激情| 99国产精品久久久久老师| 久热成人在线视频| 亚洲欧美美女| 日韩亚洲欧美一区二区三区| 国产一区二区三区四区五区美女| 欧美日韩一二三区| 免费看亚洲片| 久久成人18免费观看| 国产精品99久久久久久有的能看| 欧美电影在线| 久久久久国产精品一区三寸| 亚洲午夜一区二区| 日韩午夜av电影| 一区在线视频观看| 国产乱码精品| 国产精品狼人久久影院观看方式| 欧美另类专区| 欧美激情一区二区在线|