读书人

关于linux下进程的互斥锁

发布时间: 2012-04-28 11:49:53 作者: rapoo

求助,关于linux下进程的互斥锁
linux环境下,g++4.33编译器。有几个进程共享一个参数,就需要互斥锁的帮忙,请注意,是进程而不是线程,而且是在linux下的,所以vc附带的createMutex肯定是不好用了,哪位达人能给点指教。
因为前面需要用到fork(),wait()函数,所以我选择了进程而不是线程,程序写到现在改起来又很麻烦。去查资料,不是vc下的互斥锁,就是linux下对线程的mutex。不知道线程的mutex对进程是不是也好用呢?

[解决办法]
进程间可以用mutex,进程间通信用共享内存,在mutex初始化的时候第2个参数写成某个值就可以把mutex初始化到共享内存中(具体记不清了,你可以搜一下).

不过也不清楚你的这个参数是什么,想要怎么共享,现在的进程间通信是什么方式.还是写清楚点比较好.
[解决办法]
mutex如果是创建在共享内存的,就可以锁不同进程。
[解决办法]
可以写到共享内存里用mutex.
或者用信号量.
这个路由表如果是文件的话可以用fcntl.
[解决办法]

探讨
是要用pthread_mutex_tlocker;
然后pthread_mutex_lock(&locker);
解锁用pthread_mutex_unlock(&locker);么?
还是说需要别的语句来把mutex共享到内存里?问题是如果一个createRequest创建了一个mutex,那么再次调用createRequest就会再次创建mutex,那么一定会报错的。如何解决呢?

读书人网 >C++

热点推荐