linux信号量的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux信号量的问题相关的知识,希望对你有一定的参考价值。
对于Linux下有两套信号量处理的函数一个是semget()这些,还有一些是sema_init()、up()、down ()这些。请问这些有什么区别。为什么还有两套啊。本人是初学者。为了提问把积分都用完了。望好心人给予答复!!小弟不胜感激。再拜致谢!!!!
sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。
sem_timedwait:阻塞等待若干时间直到信号量>0。
sem_post:使信号量加1。
sem_destroy:释放信号量。和sem_init对应。 答案补充 关于各函数的具体参数请用man查看,如man sem_init可查看该函数的帮助 参考技术A int sem_init是创建信号灯的API,up().down()我不知道是什么,但是点灯是int sem_post(),灭灯是int sem_wait和int sen_trywait,后者是前者的非阻塞形式 参考技术B sem_init APP编程时使用,sema_init写驱动时使用,具体去看下深入理解linux内核那本书相关内容
Linux 信号详解二(信号分类)
信号分类 信号分为可靠信号和不可靠信号 不可靠信号的缺点 ①:处理完信号,需要重新再注册信号;②信号可能丢失。 Linux已经对缺点①做了优化,现在的不可靠问题主要指的是信号可能丢失 信号还可以分为实时信号和非实时信号--一般不可靠信号指的是前32种信号,这32种信号已经有了预定义值,每个信号有了确定的用途及含义,并且每种信号都有各自的缺省动作 --可靠信号指的后32种信号 --非实时信号都不支持排队,都是不可靠信号;实时信号都支持排队,都是可靠信号。
以上是关于linux信号量的问题的主要内容,如果未能解决你的问题,请参考以下文章