当前位置: 技术问答>linux和unix
【求助】如何使运行中的线程挂起?
来源: 互联网 发布时间:2015-12-12
本文导语: 示例程序如下: #include #include #include #include void doWork() { while (1) { ; } } void* func(void *) { doWork(); return NULL; } int main(int argc, char *argv[]) { pthread_t thrd; pthread_attr_t attr; pthread_attr_init(&...
示例程序如下:
#include
#include
#include
#include
void doWork()
{
while (1)
{
;
}
}
void* func(void *)
{
doWork();
return NULL;
}
int main(int argc, char *argv[])
{
pthread_t thrd;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
if ( pthread_create(&thrd, &attr, func, NULL) )
{
perror("pthread_create error");
exit(EXIT_FAILURE);
}
//..................
//在此将运行中的子线程func挂起。
return 0;
}
//doWork是用户编写的操作,不能改动。
//不知道能不能实现这样的要求,请教各位了~
#include
#include
#include
#include
void doWork()
{
while (1)
{
;
}
}
void* func(void *)
{
doWork();
return NULL;
}
int main(int argc, char *argv[])
{
pthread_t thrd;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
if ( pthread_create(&thrd, &attr, func, NULL) )
{
perror("pthread_create error");
exit(EXIT_FAILURE);
}
//..................
//在此将运行中的子线程func挂起。
return 0;
}
//doWork是用户编写的操作,不能改动。
//不知道能不能实现这样的要求,请教各位了~
|
如果是睡眠的话,使用条件变量,这样主线程可以在任意时刻来唤醒特定的子线程。
|
用sleep()或pthread_join()
|
sleep..