由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 重复利用threads的问题
相关主题
如何GDB调试因pthread_cond_wait()阻塞的线程? (转载)请教一个linux下面的多线程semaphore的问题。
关于线程读写全局变量的问题请教一个线程同步的问题。
对pthread熟悉的XD请进来看看一直没有很好理解thread join itself,哪位解惑一下 (转载)
condional variable thread sync 问题 (转载)Java的服务器一般运行几个线程比较合适?
how many ways in C++ to release a mutex?HELP:这个死锁是怎么发生的?
怎么 kill 一个 thread 啊如何实现N层循环嵌套
[合集] 为什么多个线程生成的随机数是一样的?再次请教关于AIX中线程以及优先级的问题
多线程有什么优化的方法?怎么知道一个线程结束没有?
相关话题的讨论汇总
话题: threads话题: myfun话题: void话题: create话题: cond
进入Programming版参与讨论
1 (共1页)
l****n
发帖数: 727
1
有一些threads做完工作后,不想让他们终止了,想下次循环回来继续用。
例如:
while (cond)
{
....
....
pthread_create(......, myfun, ...);

....
....

}
void * myfun (void * arg)
{
do something.
}
现在不想每次循环的时候都重新生成threads. 所以想让这些threads 等待下一次loop
回来的时候继续干活,当然干的是同样的活。
这样该怎么实现? 还是用condition variable?
例如这样:
void * myfun (void * arg)
{
while (1)
{
do something;
cond_wait();
}
}
然后主thread里再加一个signal?
那 pthread_create()是不是要加一个flag, 就是让第一次进入时候create threads,
以后再loop进来的时候就不再create了,就只signal.
是这么做嘛?有没有什么例程序?
大家帮忙解答一下,给点
D*V
发帖数: 567
2
没看明白要干啥.
如果是想myfun干会活就歇会儿然后回来再干,可以sleep,这样等下个时间片来了会继续
work.
如果仅仅是想一个线程,再满足cond条件的时候干活,可以先建立线程,并且阻塞住,然后
while循环满足条件是signal唤醒该线程.

【在 l****n 的大作中提到】
: 有一些threads做完工作后,不想让他们终止了,想下次循环回来继续用。
: 例如:
: while (cond)
: {
: ....
: ....
: pthread_create(......, myfun, ...);
:
: ....
: ....

1 (共1页)
进入Programming版参与讨论
相关主题
怎么知道一个线程结束没有?how many ways in C++ to release a mutex?
请教一个c语言实现多线程的问题怎么 kill 一个 thread 啊
在main()里面创建了几个线程,如何等待所有线程都结束?[合集] 为什么多个线程生成的随机数是一样的?
一个multithread的问题(是不是有人觉的很简单?)多线程有什么优化的方法?
如何GDB调试因pthread_cond_wait()阻塞的线程? (转载)请教一个linux下面的多线程semaphore的问题。
关于线程读写全局变量的问题请教一个线程同步的问题。
对pthread熟悉的XD请进来看看一直没有很好理解thread join itself,哪位解惑一下 (转载)
condional variable thread sync 问题 (转载)Java的服务器一般运行几个线程比较合适?
相关话题的讨论汇总
话题: threads话题: myfun话题: void话题: create话题: cond