Chinaunix
标题:
线程中sleep问题
[打印本页]
作者:
reer
时间:
2009-04-08 15:11
标题:
线程中sleep问题
在这个网页里:
http://man.lupaworld.com/content/develop/joyfire/system/11.html#I260
有一句话:
当线程调用sleep时,整个的进程都处于睡眠状态,也就是说,所有的三个线程都进入睡眠状态。这样我们实际上没有解决任何的问题。
但是,在下面这个简单例子里,sleep(1)后,线程thr_fn才会被执行,如果没有sleep(1),线程thr_fn不会执行,这不是说明sleep可以保证子线程正常运行到吗,当然也解决了子线程不起来的问题:
pthread_t ntid;
void *thr_fn(void *arg)
{
printf("new thread: ");
return((void *)0);
}
int main(void)
{
pthread_create(&ntid, NULL, thr_fn, NULL);
printf("main thread:");
sleep(1);
exit(0);
}
作者:
astezheng
时间:
2009-04-08 15:16
标题:
回复 #1 reer 的帖子
可以考虑同步,也可以在主线程里面设置,子线程不分离,然后pthread_join,
如果非要sleep的话,建议用select定时
[
本帖最后由 astezheng 于 2009-4-8 15:22 编辑
]
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2