zoukankan      html  css  js  c++  java
  • 线程-----异步信号

    信号可以被进程用来相互通信。线程同进程一样也可以接收和处理信号,信号也是一种线程间同步的手段。

    信号(SIGINT 和 SIGNO)与任何线程都是异步的,也就是说信号达到线程的时间是不确定的。如果有多个线程可以接收

    异步信号,则只有一个被选中。如果并发的多个同样的信号被送到一个进程,每一个将被不同的线程处理。如果所有的

    线程都屏蔽该信号,则这些信号将被挂起,直到有信号解除屏蔽来处理他们。

    处理异步信号的3个函数:

    1、int pthread_kill(pthread_t thread, int sig);

    向特定的线程发送sig信号

    2、int sigwait(const sigset_t *set, int *sig)

    阻塞线程,等待set中指定的信号之一到达,并将到达的信号存入sig中

    3、int pthread_sigmask (int how,const sigset_t *set,sigset_t *oset)

    设置线程的信号屏蔽码,但对不允许屏蔽的信号Cancel信号和不允许响应的信号Restart信号进行了保护。

  • 相关阅读:
    sed command
    【Python3】作用域(局部变量、全局变量)
    【Python3】函数与参数
    【Python3】编程范式
    【Python3】字符解码与编码
    【Python3】文件操作
    【Python3】集合
    【Python3】目录
    【Python3】字典
    【Python3】字符串操作
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6567122.html
Copyright © 2011-2022 走看看