首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Unix上使用线程读写锁对进程有什么影响

2012-09-02 
Unix下使用线程读写锁对进程有什么影响?现在有一种设计方案:1.有一个主进程A2.A里面有一片内存区域用于存

Unix下使用线程读写锁对进程有什么影响?
现在有一种设计方案:
1.有一个主进程A
2.A里面有一片内存区域用于存放数据,叫M吧
3.主进程A会根据需要fork子进程进行处理,这些子进程在处理过程中会用到M中的数据。
4.A里面还有一个线程b,用来更新M中的数据。

现在我想用线程的读写锁来保证线程b在更新数据时,主进程A fork出来的子进程能够拿到新的数据。
1.fork子进程之前加读锁,fork之后取消读锁
2.更新M之前加写锁,更新之后取消写锁。

我的疑问是,这个读写锁对fork出来的子进程有效吗?
书上看到的读写锁机制是针对线程间的,所以才会有这种疑问。

期待高人指点一二。

[解决办法]
做共享内存,在共享内存里创建进程共享的互斥锁/读写锁。

manpage看一下这些函数就会了:

int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);

void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
int shmget(key_t key, size_t size, int shmflg);

热点排行