ChinaUnix.net
相关文章推荐:

读写锁,互斥锁

目前我们程序中的同步进程间读写关系是使用信号灯实现的。 我记得以前在读Richard Steven的UNIX进程间通讯的时候提到 POSIX的读写是可以在不同进程间共享的,手上现在没有那本书, 希望用过的人给些指点。 1。记得UNIX进程通讯上讲POSIX读写并不是标准的一部分, 现在是否已经是标准的一部分,我们的程序主要要跑在AIX和HPUX上, 目前也兼容LINUX和SOLARIS和COMPAQ TRU64。我不希望使用了 POSIX读写导致程序的不...

by unicorns - C/C++ - 2007-07-15 02:10:01 阅读(2989) 回复(3)

相关讨论

如何 获得读写

by zhtzn - Informix - 2003-06-17 15:46:18 阅读(708) 回复(0)

pthread_mutex_t r_Mutex; ///读住readCounter pthread_mutex_t w_Mutex; ///住同步资源 unsigned long readCounter; ///条件变量如果为0通知(pthread_cond_signal) pthread_cond_t condReadCounter; void G_Lock::rLock() { pthread_mutex_lock(&w_Mutex); //防止于写操作冲突 pthread_mutex_lock(&r_Mutex); //防止readCounter 冲突 readCounter++; pthread_mutex_unlock(&w_Mutex); ...

by hwz_119 - C/C++ - 2007-06-14 09:24:38 阅读(1349) 回复(6)

最近在研究linux读写,一直找不到一个比较好的程序例子,我在网上搜了很久也搜不到,谁有好的例子贴一下,谢谢了。

by 湖光倒影 - C/C++ - 2007-08-07 14:45:17 阅读(5104) 回复(4)

我的程序大致如下(环形缓冲区抓包): packetCirbuf是结构体,包含mp互斥量和more条件变量 线程A: write() { while(1){ mutex_lock(&packetCirbuf.mp); DoWrite();//每次写一个包 cond_signal(&packetCirbuf.more); mutex_unlock(&packetCirbuf.mp); } } 线程B Read() { while(1){ mutex_lock(&packetCirbuf.mp); cond_wait(&packetCirbuf.more,&packetCirbuf.mp); DoRead();//每次读一个包...

by ifosn - C/C++ - 2008-10-08 22:24:29 阅读(3648) 回复(14)

我在运行《深入理解计算机系统》这本书“并发编程”这一章中的一个互斥的例子时,结果不对,请大牛给分析一下。 [code] #include #include #include #include #define NITERS 10000000 void *count(void *arg); unsigned int cnt=0; sem_t mutex; int main() { sem_init(&mutex,0,1); pthread_t tid1,tid2; pthread_create(&tid1,NULL,count,NULL); pthread_create(&tid2,NULL,c...

by wxs1024 - C/C++ - 2005-12-13 13:07:31 阅读(884) 回复(3)

多个进程之间没有亲缘关系,只会有一个进程去写,会有多个进程去读。 最开始想到是pthread_rwlock_* 这些函数,但是在 man pthread_rwlockattr_setpshared有 BUGS The PTHREAD_PROCESS_SHARED attribute is not supported. 查了FreeBSD 5.4、6.2、7.0都是如此,是否说明不能用在多个进程之间? 又想到了flock,用LOCK_SH和LOCK_EX来实现,问题有2个, (1) flock的效率如何,是否会比mutex、semaphore等慢很多? (2) flock是...

by caijimin - BSD - 2008-12-31 11:52:10 阅读(1640) 回复(0)

我写个程序里有pthread_rwlock_t 类型 #include 用gcc -o a1 a1.c -lrt编议显示`pthread_rwlock_t' undeclared (first use in this function) 在用gcc -o a1 a1.c -lpthread还是一样的显示 请问怎样才能通过 [ 本帖最后由 liuxinaa 于 2006-6-30 20:32 编辑 ]

by liuxinaa - 程序开发 - 2006-07-01 10:51:47 阅读(578) 回复(3)

调用pthread_rwlock_init 动态初始化的时候,有一个const pthread_rwlockattr_t *attr 参数,当该参数设置为 PTHREAD_PROCESS_SHARED的时候,解释是将读写用在不同的进程, 但是将该参数置为空,并将读写放入共享内存不是就可以用在不同的进程了吗?设置这个参数后操作系统会做什么处理?还是不设置就放在共享区中使用是不正确的?

by stuff990 - C/C++ - 2005-01-18 13:52:23 阅读(571) 回复(0)

#include #include pthread_mutex_t mutex; void* thread(void *arg) { while(1) { pthread_mutex_lock(&mutex); printf("pthread:%d\n", (int)arg); sleep(2); pthread_mutex_unlock(&mutex); } pthread_exit(NULL); } int main(void) { int i; pthread_t pid[10]; ...

by tourer - C/C++ - 2008-05-26 22:36:44 阅读(6663) 回复(10)

很多资料建议用析构函数释放互斥 { //新代码段 Lock lock; ... ... } 这样有异常抛出时,也能自动释放 但是当没有异常发生,程序正常执行时,所有的编译器是否能保证这个代码段结束时析构函 数马上调用呢?

by SmileSniper - C/C++ - 2007-03-01 15:29:53 阅读(875) 回复(1)