ChinaUnix.net
相关文章推荐:

进程间同步

各位高手哈: 就是如题,我一直想用c实现linux下多个对某几个共享变量实现同步访问? 但是不太清楚用代码如何实现。 我知道可以用futex来实现同步和共享内存的方法来实现,但是不知道那些参数该如何使用,和如何在各个实现? 希望有过这方面经验的高手给个代码来研究下啦 谢谢啦!

by lok_fun - C/C++ - 2009-04-19 15:34:29 阅读(2310) 回复(3)

相关讨论

<程>>在讲信号那一章的时候给出了以下的代码,就是用信号实现父子同步,但是我觉得有点不太对: TELL_WAIT()是用来初始化, 它阻塞了SIGUSR1和SIGUSR2,直到WAIT_PARENT和WAIT_CHILD中调用sigsuspend()才解除了阻塞。这样做的原因,我自己想了一下,认为是这样: 如果不阻塞的话可能发生如下情况,在WAIT_PARENT()中在执行完while(sigflag == 0)的判断但是还没调用sigsuspend()的时候产生了信号,这样就会...

by violentsky - C/C++ - 2006-04-06 21:06:07 阅读(1084) 回复(1)

有没有人帮忙讲讲通讯问题,如果用sharememory怎么让另一个知道memory中的内容被改变了?

by colinzhou - C/C++ - 2004-01-06 11:13:08 阅读(1106) 回复(4)

有这样一个可执行文件csv.exe,它的主要功能是对指定的一个文件进行读取和写入,当然在读写的时候有对文件进行加锁,读写完后进行解锁. 现在碰到的问题是这样的,要允许多个csv.exe可以先后执行,但后一个要等待前一个执行完了再执行,也就是所谓的的等待.我在序用了CreateMutex和WaitForSingleObject,但不起作用,不知道是什么原因,还是完全不是这样用的.请高手指点,谢谢!

by zjwind - C/C++ - 2006-04-11 21:35:46 阅读(966) 回复(3)

场景: 三个服务序:一个实时数据采集(A),一个数据后续处理(B),还有一个网络服务(C)。 C负责将A和B的运行状态和它们所处理的数据对外进行发布和处理(包括远修改运行参数等)。 三个序涉及的数据有一部分利用数据库存储,还有配置文件中的数据以及内存实时数据。 现状: 目前使用了boost::interprocess中的共享内存机制,交互的途径是有了,但是实时性和同步性保证没有好的方案。 现在用的是笨办法,比如在C中建立一...

by dq2004 - C/C++ - 2009-06-01 11:02:23 阅读(2923) 回复(7)

有这样一个需要: 一类,他们需要相互通信,每个人发的消息,其他的都要收到,用什么方式比较好?

by smalloc - C/C++ - 2009-04-30 13:05:23 阅读(1519) 回复(6)

System V IPC 框架 提供3种服务:消息队列、信号量阵列以及共享内存块。 通过3类锁确保正确性:命名空锁(namespace lock), 槽锁(slot lock), p_lock. 共享内存(非常高效的多共享数据方式) 比较有趣的是紧密共享内存方式(ISM),紧密共享内存方式最早是作为一种优化引进Solaris2.2的,它允许底层内核数据和结构的共享。 非ISM系统中为共享内存页面维护每个的映射信息,系统为共享内存页面生...

by kingthr - Solaris文档中心 - 2009-03-30 22:28:46 阅读(1701) 回复(0)

我想写一个服务器端的序,该序使用池的方法,父预创建n个子,父使用PIPE与子进行通信。父接受来自网络请求(就是accept()),然后把这个网络请求交给预先创建好的子处理,现在的问题是父accept得到了套接字connfd后,如何把这个请求传给子?子里需要从这个网络请求中读取数据并作出回应。 我知道不能简单的把connfd传给子,因为子是在accep之前创建好的,所以子这时已经...

by wcw - C/C++ - 2009-03-23 11:53:46 阅读(13899) 回复(45)

下面的代码 是两个序!一个输出,一个输入的! 无论先运行哪个 结果都是输出:“shmat error”! 是我的参数 设置错误吗? #define BUF_SIZE 1024 #define MYKEY 24 int main() { int shmid; char* shmptr; if((shmid=shmget(MYKEY,BUF_SIZE,IPC_CREAT))==-1) { printf("shmget error!\n"); exit(1); } if((shmptr=shmat(shmid,0,0))==(void*)(-1)) { fprintf(stderr,"shmat eror!\n"); exit(1); } while(1) ...

by jqx55ah - C/C++ - 2008-09-13 22:39:41 阅读(2232) 回复(13)

php中实现通讯 邱文宇 本文将讨论在php4环境下如何使用通讯机制——ipc(inter-process-communication)。本文讨论的软件环境是linux+php4.0.4或更高版本。首先,我们假设你已经装好了php4和unix, 为了使得php4可以使用共享内存和信号量,必须在编译php4序时激活shmop和sysvsem这两个扩展模块。 实现 方法 :在php设定(configure)时加入如下选项。 --enable-shmop --enable-sysvsem 这样就使得你的php系统可以处...

by 剑心通明 - php文档中心 - 2008-04-18 09:32:55 阅读(704) 回复(0)

作者: pascal4123 出处: pascal4123.cublog.cn (转载敬请注明作者或出处) 当脚本产生大量线时,很自然地,线会产生通信(改变和访问共享全局内存)的需求。有些情况需要小心对待,使用锁来同步对共享对象的访问。但这是一种比较老实的通信模式。 当脚本启动序时,事情并没有这么简单。如果我们限制通信的类型,有许多手段。比如: 1. 命令行参数 2. 标准流重定向 3. os.popen调用产生的管道 4. 序退...

by pascal4123 - Python文档中心 - 2010-12-27 09:36:48 阅读(12878) 回复(3)