ChinaUnix.net
相关文章推荐:

线程变量 同步锁

我在网上搜索到的多线程编程中,当讲到 条件变量时,都有这么一句话“它常和互斥一起使用”,或者是“通常它和互斥一起使用”(但他们举的例子全都是一起使用的,没单独使用过)。是不是说 条件变量 可以不用互斥而单独使用呢?如果单独使用条件变量时,会有资源竞争问题吗?

by lnux - C/C++ - 2005-06-06 14:02:15 阅读(1559) 回复(2)

相关讨论

写了一个简单的线程同步代码,主要是想让主线程创建出新线程后,等待一段时间,然后得到新线程赋值,如果在制定时间内不能完成,那么将超时退出。 但是发现写的这段代码总是阻塞等待新线程,没有执行超时退出。请教各位指点一下。 #include #include #include #include #include #include     pthread_mutex_t count_lock; pthread_cond_t count_noze...

by nebula2005 - C/C++ - 2008-12-08 15:06:46 阅读(2745) 回复(18)

线程同步可以有两种方式 一、采用同步代码块:就是用synchronized申明一个互斥变量 class aa { public static void main(String[] args) { TestThread tt = new TestThread(); new Thread(tt).start(); new Thread(tt).start(); new Thread(tt).start(); new Thread(tt).start(); } } class TestThread implements Runnable { int tickets = 10; String str = ne...

by zyme007 - Java文档中心 - 2008-05-10 09:13:33 阅读(502) 回复(0)

我的问题是这样的,当一个进程写数据到共享内存时遥通知另一个进程去读数据; 我利用互斥和条件变量通过共享内存实现进程同步时, 发现当一个进程正在等待条件变量时将该进程kill了后,似乎互斥还是被该进程独占了 其它所有的进程包都要好像始终在等待该互斥,请问有没有更好的解决方法?我想 用信号量去处理,但是不知道信号量是否也会出现类似的问题?

by fannyth - C/C++ - 2006-01-19 19:21:12 阅读(1308) 回复(0)

代码如下:环境是:Linux skeeter-desktop 2.6.27-14-generic #1 SMP Wed Apr 15 18:59:16 UTC 2009 i686 GNU/Linux [code] #include #include #include #include pthread_mutex_t count_lock; pthread_cond_t count_nonzero; unsigned count; void * decrement_count(void *); void * increment_count(void*); int main(int argc, char **argv) { pthread_t t1, t2; p...

by wwdwwd - C/C++ - 2009-06-14 20:51:33 阅读(3781) 回复(4)

在网上看关于线程同步时候对条件变量和互斥的描述: 互斥一个明显的缺点是他只有两种状态:定和非定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥的不足,他常和互斥一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥并等待条件发生变化。一旦其他的某个线程改变了条件变量,他将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些...

by 什么名 - C/C++ - 2009-02-10 20:24:28 阅读(2853) 回复(6)

unix的文件和记录是不是同一个概念?它们都可以应用于线程同步吗? 用于进程同步确认是可以的,但线程我现在就不大确定,有些资料说可以,有些资料说不行,困惑了

by Real197 - C/C++ - 2010-12-01 17:24:48 阅读(3826) 回复(6)

最近在写的一个程序,有一个主线程和一个子线程。 主线程偶尔要用子线程去下载, 希望能够实现在主线程中通知子线程去下载哪个网页。子线程是 一开始就创建好的,下载完成后子线程也不能退出。 还要求能够是主线程中断子线程下载,同样也不能使子线程 退出。 另外关于子线程内存泄露的问题也希望能够指点一下。 小弟真是跪求了,真的好急。 如有实例代码更好。

by souldemo - C/C++ - 2008-04-03 17:09:36 阅读(1326) 回复(3)

第一个线程: pthread_mutex_lock memcpy-->buffer pthread_cond_signal pthread_mutex_unlock 第二个线程: pthread_mutex_lock pthread_cond_wait pthread_mutex_unlock buffer-->write 第一个线程将一帧图片数据拷贝到buffer缓冲区中 第二个线程将数据通过网络发送出去 问题:有没有可能第二个线程正在发送数据的时候 第一个线程将数据覆盖掉 造成客户端接收到的数据不对 如果有可能 有什么办法解决? 网络套接口是阻塞的

by hong106525654 - C/C++ - 2006-12-30 20:41:20 阅读(1329) 回复(5)

小弟试验了一个线程同步的小函数,代码如下: vi thread2test.c "thread2test.c" 31 lines, 603 characters #include #include #include #define nloop 50 int counter; void * doit(void *); // pthread_mutex_t counter_mutex=PTHREAD_MUTEX_INITIALIZER; int main(int argc,char **argv) { pthread_t tidA,tidB; pthread_create(&tidA,NULL,&doit,NULL); pthre...

by mtx99 - C/C++ - 2006-11-13 22:50:15 阅读(1151) 回复(3)

有一个主线程和其他四个分线程(代码一样) 分线程数量可变 现在主线程要等待四个分线程运行完同样的一段代码 怎么等待 不是同时等待分线程结束

by hong106525654 - C/C++ - 2006-10-17 16:12:44 阅读(1055) 回复(5)