apue學習第十九天(2) 執行緒與訊號

2021-06-28 12:34:30 字數 1038 閱讀 3748

thread中的訊號處理very similar to 程序中的訊號處理,比如:

(1)pthread_sigmask vs sigprocmask

不過需要注意的是,pthread_sigmask失敗時直接返回錯誤碼;而sigprocmask失敗時設定errno並返回-1;

(2)pthread_kill vs kill

還記得嗎?「kill is not kill」,傳送訊號。

(3)sigwait vs sigsuspend

好啦,我們看**以詳細了解執行緒的訊號處理:

#include "apue.h"

#include int quitflag;

sigset_t mask;

pthread_mutex_t lock = pthread_mutex_initializer;

pthread_cond_t waitloc = pthread_cond_initializer;

void *

thr_fn(void *arg) }}

intmain(void)

本程式中使用了條件變數來進行同步訊號處理,處理的訊號包括sigint(ctrl+c)和sigquit(ctrl+\);接到sigint時輸出提示,

直到接到sigquit時退出。我們主要看main函式,注意以下幾點:

(1)signal set 和 signal mask的使用

以前說過,有兩個訊號是不能被忽略的:sigstop和sigkill,原因是它們給kernel或superuser提供了可靠的停止或終止方法;

(2)還記不記得condition variable的使用「模板」?

case sigquit 和 main中的互動處理方式;

(3)sigwait、pthread_sigmask與sigprocmask的使用。

下面是長長的分割線~

————————————————————————————————————————

好啦,關於執行緒,我們就講那麼多,下面看deamon!

冥想第十九天

不能怪自己多心,畢竟出現不舒服的感覺是因為大腦太關切自己的身體了。一點也不想讓它受刺激。今天出來玩了,早上做了體檢。又帶著小妞妞出來打了預防針,後又跟著朋友出來滎陽南嶺玩了,到時有點困,告訴自己要接受,好好接受當下 但不反抗,知道是正常的。坐上車後睡了一會,所有的精力都回來了。當和朋友一起回來的時候...

ACM 第十九天

積性函式o n 線性篩,篩素數,u n 尤拉函式 n n 1 vis 0 vis 1 1,mu 1 1,phi 1 1 2 for rg int i 2 i n i 7else mu k mu i phi k phi i phi prime j 8 9 可以發現,線性篩分為3部分 1.n本身是素數,...

設計模式學習第十九天

命令模式 模式是從 中而來的,就是 的靈活的排列組合,模式不應為了講清的特設環境而迷惑,而要實踐,最好的就是專案,沒有專案之前就是敲 提高沒有捷徑,就是敲 我對命令特設環境的思路 烤肉者儲存乙個命令的引用,主要作用就是執行繼承父類的子類的命令的執行,依靠遍歷服務員過來的集合進行按個執行 服務員類利用...