网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

进程间通信-信号量

信号量:它描述了当前某种资源的数量。它的意图在于进程间同步,就相当于一个计数器,它本身不具有数据交换的功能,而是通过控制其他通信资源来实现进程间通信。

创新互联公司专注于永善网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供永善营销型网站建设,永善网站制作、永善网页设计、永善网站官网定制、小程序设计服务,打造永善网络公司原创品牌,更为您提供永善网站排名全网营销落地服务。

当一个进程要访问临界资源时,先要进行P操作申请资源,当大于0时,资源可以请求,申请过后,若为0,则将进程挂起;当进程不再访问该信号量控制的资源时,进行V操作,若有进程挂起,则唤醒该等待的进程继续恢复访问,如果无挂起进程,就给它加1。

进程间同步:对临界资源的访问带有顺序性的,一个执行完毕,另一个才可以执行。

注意:对信号量的操作均为原子操作,因为信号量的主要作用就是维护资源的互斥或多进程的同步访问,而在信号量的初始化和创建中均不能保证其原子操作。

创建信号量:semget(key_t key,int nsems,int semflg);

P,V操作:

semop(int semid,struct sembuf* buf,unsigned nsops);//对当前信号量集上的第几个信号量进行P/V操作

释放信号量:semctl(int semid ,int semnue,int cmd)//对当前信号量集上的第几个信号量进行cmd指令操作。

union semun { 

 int val; // 使用的值 

 struct semid_ds *buf; // IPC_STAT、IPC_SET 使用缓存区 

 unsigned short *array; // GETALL,、SETALL 使用的数组 

 struct seminfo *__buf; // IPC_INFO(Linux特有) 使用缓存区 

}; 

comm.h

进程间通信-信号量

comm.c

进程间通信-信号量

进程间通信-信号量

进程间通信-信号量

test.c
进程间通信-信号量

运行结果:

进程间通信-信号量


名称栏目:进程间通信-信号量
转载源于:http://bjjierui.cn/article/gsisei.html

其他资讯