您好、欢迎来到现金彩票网!
当前位置:2019正版免费全年资料 > 同步通信量 >

linux进程间通信之System V 信号量(semaphore)用法详解

发布时间:2019-06-12 04:04 来源:未知 编辑:admin

  信号量是一种不同进程或不同线程间的同步方法,有System V信号量和Posix信号量。

  本文介绍System V 信号量,其在内核中维护,可用于进程间或线程间的同步,本文只介绍进程间同步。

  二值信号量: 顾名思义,其值只有两种0或1,相当于互斥量,当值为1时资源可用;而当值为0时,资源被锁住,进程阻塞无法继续执行。

  System V信号量是指的计数信号量集(set of counting semaphores),是一个或多个信号量的集合,其中每个都是计数信号量。(注:System V 信号量是计数信号量集,Posix 信号量是单个计数信号量。)

  参数:key是信号量的键值,多个进程可以通过这个键值访问同一个信号量;nsems参数指定信号量集合中的信号量数,一般设为1,如果不创建新的信号量集,只是访问一个已经存在的集合,可以把该参数设为0,一旦创建完一个信号量集,就不能改变其中的信号量数;oflag同open()权限位,IPC_CREAT标示创建新的信号量,如果或上IPC_EXCL,若信号量已存在则出错,如果没有或上IPC_EXCL,若信号量存在也不会出错。

  参数:semid:信号量集标识符;nops是opstr数组中元素数目,通常取值为1;opstr指向一个结构数组

  语句中ftok的第一个参数必须是存在的文件名,如果不存在的文件名,例如sem_key=ftok(xxxxx,A); 则运行结果出错:

http://disyu.com/tongbutongxinliang/301.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有