当前位置:  技术问答>linux和unix

进程、线程和信号屏蔽字的困惑

    来源: 互联网  发布时间:2017-01-21

    本文导语:       新手小白看《unix环境高级编程》  有点困惑       一个进程不是只有一个信号屏蔽字吗?一个进程可以创建多个线程,那么多个线程共享一个信号屏蔽字呀,为什么书上12.8节里说“每个线程都有自己的信...

     新手小白看《unix环境高级编程》  有点困惑
      一个进程不是只有一个信号屏蔽字吗?一个进程可以创建多个线程,那么多个线程共享一个信号屏蔽字呀,为什么书上12.8节里说“每个线程都有自己的信号屏蔽字,但是信号的处理时进程中所有线程共享的”???
      还有啊,“sigprocmaskde 的行为在多线程的进程中并没有定义”,这样说的话,创建了线程就会使这个函数失去定义?还是包含了“pthread.h”就会使他失去定义?
      向大家请教了。感觉这类的问题没人问很难想到到,知道了就觉得很好理解似的,小弟自学呀,从第一章开始已经到十二章了(^-^ 太偏的跳过去)。。。

|
创建线程的时候,线程继承了进程的信号屏蔽字,但是线程也可以使用pthread_sigmask 修改自己的屏蔽字
“sigprocmaskde 的行为在多线程的进程中并没有定义”,应该不是说没有定义吧,而是说行为是不确定的。

|
1楼解释的正确,楼主的未定义理解有偏差,是指在多线程环境中调用sigprocmask函数时函数的行为未给出标准定义,一般这么说就是调用时行为不确定,不同的实现也可能不同,都不一定是你想要达的效果。

|

|
英文版本的原话是“The behavior of sigprocmask is undefined in a multithreaded process. Threads have to use pthread_sigmask instead”

    
 
 

您可能感兴趣的文章:

  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • 如何实现这样的API,可同时被不同的进程/线程使用,但是又不区分进程/线程?
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 如果父进程有多个线程,那么它的子进程也该拥有这些线程
  • 一个进程创建了两个线程,如何使得当任何一个线程(比如线程a)结束时,同时也结束线程b,也就是使两个线程一起死掉,怎么办呢?
  • 如何让子进程继承父进程的线程
  • 请问,在一个进程中创建多线程时如何能避免不同的线程获得同一个线程标识
  • 在一个进程的主线程中如何判断自己创建的线程是否存在?
  • Linux中最多同时可以开多少个进程,一个进程可以开多少个线程?
  • 请教:线程中调用一个阻塞的方法后,进程及其它线程会阻塞么?
  • 请问在单进程,多线程程序里,线程间使用IPC的信号量来同步,能行吗?
  • linux线程与进程的问题
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 进程和线程的区别
  • 请问:linux下的子进程与线程的区别
  • linux进程(线程)运行过程中如何获取本进程当前的内存使用状况,统计信息?
  • socket+多进程+多线程
  • sleep是进程域还是线程域的?
  • 线程上下文切换和进程上下文切换那个代价大?
  • 一个进程可以屏蔽另一个进程对信号的响应吗?
  • 父进程与子进程的信号屏蔽表可以不一样吗?
  • 如何在开机事后屏蔽掉sendmail进程
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 【求助】linux/Unix下创建子进程,向父进程发送信号,子进程也能收到改信号,此时如何让子进程不收到信号
  • 多个进程共用一个信号量,如果某个进程死掉,此时又将信号量锁定,其它进程就死掉,有什么办法可以解决这一问题
  • 如何实现子进程根据父进程的信号来确定是否终止子进程???
  • 非进程所有者如何向该进程发送信号
  • 信号灯同步2个进程,一个进程如何主动给另一个进程发送通知?
  • 如何确定信号的来源?即如何知道接收到的信号来自于哪一个进程号?
  • jquery iis7站长之家
  • 请教关于Kill向子进程发送信号的问题,子进程如何相应信号,为什么子进程接受不到。
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • 学习linux的新手问:linux进程信号掩码以及信号阻塞与信号未决怎么理解?
  • 新手提问:父进程结束时子进程会得到什么样的从系统发来的信号?
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 【求助】多进程中 内核信号量无效?
  • linux中 关于 进程和信号的问题
  • 进程间信号通信问题
  • 守护进程为什么要忽略SIGHUP信号呢?
  • 如何向由fork出来的进程家族发送信号?
  • 某daemon进程运行一段时间后接受到不知何地的终止信号导致进程退出,何解?
  • 守护进程的信号问题(UNIX环境高级编程 中的问题)
  • 进程间通过信号量通信
  • linux僵尸(zombie)进程介绍及清除
  • 进程Afork进程B,进程Bfor进程C,如果进程C退出发出SIGCHLD,A进程是否可以收到
  • Ubuntu查看内存,进程相关命令介绍
  • 如果一个server进程要fork许多子进程,但不等待子进程终止,也不希望子进程结束后处于僵进程状态直到父进程终止。请问可采用什么方法实现
  • linux下进程占用内存空间详解
  • 在多进程中父进程frok子进程,怎样让子进程自举,脱离父进程,而且父进程不退出
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • fock()开出的子进程的进程ID是否进程ID都大于父进程的?
  • android 4.0 托管进程介绍及优先级和回收机制
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3