您好、欢迎来到现金彩票网!
当前位置:皮皮彩票app下载 > 共享操作系统 >

linux进程间通信问题 我想用共享内存的方式实现信号量控制一个不

发布时间:2019-07-17 00:57 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部我想你的目的是有一段代码 (即你标的 /*..........只能单独进行的函数.........*/)

  具体关于互斥的基本原理,以及你为什么错,可以找一本讲操作系统原理 (关于进程同步的内容)去看。

  所以,用 shared memory 来实现进程同步肯定是不行的,正确的做法是使用 semaphore, 具体可以参考 《unix 环境高级编程》中关于 semaphore (信号量)使用的章节。

  展开全部看你好像完全搞混了。。。什么叫用共享内存的方式实现信号量控制不能并行的代码?

  首先共享内存和信号量都可以实现进程间通信,但是他们的作用或者说使用的方向是有明显的区别的:

  1:共享内存是创建一块内存区域,多个进程可以同时访问该区域,一般用于进程间数据传输,效率比较明显。

  2:信号量则完全不同,信号量主要是用来控制临界资源的访问,也就是你说的不能并行的函数/代码。

  3:说一下实现,共享内存直接用API就可以了,信号量一般会进行封装,类似于对链表的操作进行一些简单的函数封装一样,下面给出信号量的使用实例代码,可以参考:

  在应用程序中只要包含sem_ctl.h就可以使用信号量的p、v操作了,下面给出2个c程序同时操作该信号量的情况,类似于:

  sem_p(semid); //获得信号量,同一时间只有一个进程能获得该信号量

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