加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux进程间通信(六) 信号量通信之semget()

发布时间:2016-09-14 19:31:36 所属栏目:Linux 来源:站长网
导读:信号量通信之semget()、semctl()、semop()及其基础实验 这个信号量理解起来是有点不容易啊,我看书看了好几遍才知道怎么回事。在讲这一节信号量之前,我还 是想

基础实验1

这两个实验主要是练习熟悉一下信号量的概念和基本用法,首先,我先在实验1的代码中 不添加与信号量相关的代码,观察运行结果,实验代码如下

simple_fork.c文件:http://download.csdn.net/detail/mybelief321/5577841

Linux进程间通信(六) 信号量通信之semget()

编译运行结果如下

Linux进程间通信(六) 信号量通信之semget()

这个运行结果是有点意思哈,由结果可以看到父进程先结束,然后子进程结束,但是我本意不是这样啊, 我想让子进程先执行,父进程再执行,也就是父进程等待子进程结束。下面咱们就用信号量来实现它。

基础实验2

本实验使用信号量来解决上面实验1的多进程间存在的同步问题,完成的功能是使父 进程等待子进程结束。因为信号量相关的函数调用接口比较复杂,咱们将它们封装成二维单个信号量的基本函 数,分别为信号量初始化函数(或者信号量赋值函数)init_sem()、P操作函数sem_p()、V操作函数sem_v()及 删除信号量函数 del_sem()等,具体实验代码如下

sem_fork.c文件点此下载

Linux进程间通信(六) 信号量通信之semget()

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读