由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 对pthread熟悉的XD请进来看看
相关主题
重复利用threads的问题请教一个concurrentlinkedqueue的用法问题
condional variable thread sync 问题 (转载)java producer consumer problem (转载)
如何GDB调试因pthread_cond_wait()阻塞的线程? (转载)其实有时候google多了会脑残的
how many ways in C++ to release a mutex?Pthread support on Windows XP
关于线程读写全局变量的问题help on pthreads.....
连续release mutex/semphore 2次有什么问题吗?展示一下苹果的bug
waiting for N condition variables in linux说个好玩的
请教pthread producer-consumer问题HELP:这个死锁是怎么发生的?
相关话题的讨论汇总
话题: pthread话题: cond话题: condition话题: wait话题: xd
进入Programming版参与讨论
1 (共1页)
p**p
发帖数: 3386
1
想用pthread实现Producer/Consumer模型,但要避免polling的出现。因为这样反复检
查一个变量以判断是否有data被producer生成的话,系统占用率会很高,大量CPU时间
都浪费在轮询上了。
研究了一下pthread,里面的condtion variable好像可以用来同步线程。但发现只
有pthread_cond_wait和pthread_cond_signal两个主要函数,一个用来等某个条件
,另一个用来发出该条件。找了半天没看到如何取消该条件来导致线程重新进入等
待状态。也就是说,比如用户A等待某个condition,然后B激活该condition,A被唤
醒,完成工作,下面想让该condition被取消,这样A继续能够用pthread_cond_wai
t来睡眠直到condition重新被激活为止。
如果只用pthread_cond_wait和pthread_cond_signal两个函数的话,用户一旦被唤
醒就不可能再被催眠了,这样就没法达到设计的目的。
对pthread还没吃透,哪位DX给点建议或者link?多谢!
T*******i
发帖数: 4992
2
loop

【在 p**p 的大作中提到】
: 想用pthread实现Producer/Consumer模型,但要避免polling的出现。因为这样反复检
: 查一个变量以判断是否有data被producer生成的话,系统占用率会很高,大量CPU时间
: 都浪费在轮询上了。
: 研究了一下pthread,里面的condtion variable好像可以用来同步线程。但发现只
: 有pthread_cond_wait和pthread_cond_signal两个主要函数,一个用来等某个条件
: ,另一个用来发出该条件。找了半天没看到如何取消该条件来导致线程重新进入等
: 待状态。也就是说,比如用户A等待某个condition,然后B激活该condition,A被唤
: 醒,完成工作,下面想让该condition被取消,这样A继续能够用pthread_cond_wai
: t来睡眠直到condition重新被激活为止。
: 如果只用pthread_cond_wait和pthread_cond_signal两个函数的话,用户一旦被唤

p**p
发帖数: 3386
3
你是指用loop来轮询变量么?前面帖子里说了,希望尽量避免用这种方式

【在 T*******i 的大作中提到】
: loop
T*******i
发帖数: 4992
4
put condition_wait at the beginning of the loop

【在 p**p 的大作中提到】
: 你是指用loop来轮询变量么?前面帖子里说了,希望尽量避免用这种方式
X****r
发帖数: 3557
5
再wait就是了,signal只是一次性的。

【在 p**p 的大作中提到】
: 想用pthread实现Producer/Consumer模型,但要避免polling的出现。因为这样反复检
: 查一个变量以判断是否有data被producer生成的话,系统占用率会很高,大量CPU时间
: 都浪费在轮询上了。
: 研究了一下pthread,里面的condtion variable好像可以用来同步线程。但发现只
: 有pthread_cond_wait和pthread_cond_signal两个主要函数,一个用来等某个条件
: ,另一个用来发出该条件。找了半天没看到如何取消该条件来导致线程重新进入等
: 待状态。也就是说,比如用户A等待某个condition,然后B激活该condition,A被唤
: 醒,完成工作,下面想让该condition被取消,这样A继续能够用pthread_cond_wai
: t来睡眠直到condition重新被激活为止。
: 如果只用pthread_cond_wait和pthread_cond_signal两个函数的话,用户一旦被唤

m*****e
发帖数: 4193
6
use semophore

【在 p**p 的大作中提到】
: 想用pthread实现Producer/Consumer模型,但要避免polling的出现。因为这样反复检
: 查一个变量以判断是否有data被producer生成的话,系统占用率会很高,大量CPU时间
: 都浪费在轮询上了。
: 研究了一下pthread,里面的condtion variable好像可以用来同步线程。但发现只
: 有pthread_cond_wait和pthread_cond_signal两个主要函数,一个用来等某个条件
: ,另一个用来发出该条件。找了半天没看到如何取消该条件来导致线程重新进入等
: 待状态。也就是说,比如用户A等待某个condition,然后B激活该condition,A被唤
: 醒,完成工作,下面想让该condition被取消,这样A继续能够用pthread_cond_wai
: t来睡眠直到condition重新被激活为止。
: 如果只用pthread_cond_wait和pthread_cond_signal两个函数的话,用户一旦被唤

p**p
发帖数: 3386
7
原来如此,多谢指点!!!

【在 X****r 的大作中提到】
: 再wait就是了,signal只是一次性的。
T*******i
发帖数: 4992
8
郁闷呀
这个版每次答完问题,都是把我晾一边

【在 p**p 的大作中提到】
: 原来如此,多谢指点!!!
p****s
发帖数: 32405
9
我来代谢一次.
//hand hand, 昨天你回答的getopts我后来也看到了.

【在 T*******i 的大作中提到】
: 郁闷呀
: 这个版每次答完问题,都是把我晾一边

X****r
发帖数: 3557
10
人不知而不愠,不亦君子乎。

【在 T*******i 的大作中提到】
: 郁闷呀
: 这个版每次答完问题,都是把我晾一边

1 (共1页)
进入Programming版参与讨论
相关主题
HELP:这个死锁是怎么发生的?关于线程读写全局变量的问题
关于在c++ member function里用signal( )连续release mutex/semphore 2次有什么问题吗?
给大家出个多进程的题waiting for N condition variables in linux
一个JAVA程序请教请教pthread producer-consumer问题
重复利用threads的问题请教一个concurrentlinkedqueue的用法问题
condional variable thread sync 问题 (转载)java producer consumer problem (转载)
如何GDB调试因pthread_cond_wait()阻塞的线程? (转载)其实有时候google多了会脑残的
how many ways in C++ to release a mutex?Pthread support on Windows XP
相关话题的讨论汇总
话题: pthread话题: cond话题: condition话题: wait话题: xd