信号
系统预先定义好的某些特定的事,事件可以被产生,也可以被接收,产生和接收事件的主体都是进程。
/usr/include/bits/signum.h
1、收到信号后,进程的行为如何设置。
信号的响应方式:
忽略 SIG_IGN
默认 SIG_DFL
自定义 用户函数 void signal_fun( int sign );
修改信号的响应方式
typedef void (*fun)(int);
Fun signal( int signum, Fun fun );
SIGKILL 不允许修改其响应方式
进程接收到信号后,main 函数中的执行体会被暂停,先调用信号处理函数,执行完后,main 函数的执行体会被恢复接着执行。
信号的发送
int kill(pid_t pid, int sigtype)
参数:
pid:将信号发送给那个进程
sigtype:发送信号的类型
返回值
pid > 0 指定接收信号进程的 PID
pid == 0 将信号发送给当前进程组中所有的进程
pid == -1 将信号发送给系统上所有的进程(有权限发送)
pid < -1 将信号发送给进程组 ID 为 -pid 组内所有的进程
同步执行:
一个进程或线程的执行需要依赖其他的进程或线程执行的条件。
异步执行:
两个以上的进程或线程执行互不影响,同时向下执行,当某个时刻,一个进程或线程会通过系统机制通知其他进程或线程。
阻塞:
函数调用,只要条件不满足,则函数不成立
非阻塞:
函数调用,无论任何情况,函数都会立即返回