当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-11-28 10:06 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
pthread_create(&tid,NULL,threadFunc,NULL);
void *threadFunc(void* pParam)
{
while(!NeedToQuitThread)
{
i=getsizeofbox();//getsizeofbox()函数是一个得到当前box中有球的个数,假若球个数为0,我就让线程暂停几秒,回来再判断,直到球的个数大于0时才继续向下执行该线程函数,
if(i<1)
{
//设置超时时间
timeout=..//这不会
// 假设想让线程等待2秒
timeres= pthread_cond_wait(,.......);
if(TIMEOUT==timeres)//处理线程暂停的返回值不会,
{
.................................
}
else
{
..............................
}
dowith(i);
.......................................
}
}
}
这其中还要用到锁撒的,都教我弄迷糊了,给开导开导,有个例子最好


页首
 用户资料  
 
2 楼 
 文章标题 : Re: pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-11-28 11:25 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
有人说在linux下的线程暂停的方法可以用sleep()函数。
对吗?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-11-28 12:50 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
sleep可能会block整个进程
一些系统中sleep是进程级别的控制
而另外有一些实现则是线程级别的

用pthread_cond_timedwait()比较保险


_________________
目前负债150多万


页首
 用户资料  
 
4 楼 
 文章标题 : Re: pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-11-28 14:01 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
xhy,
有没有pthread_cond_timeWait()具体用法给举个例子


页首
 用户资料  
 
5 楼 
 文章标题 : Re: pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-11-28 16:33 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
man pages里有简单例子

APUE里也有


_________________
目前负债150多万


页首
 用户资料  
 
6 楼 
 文章标题 : Re: pthread_cond_wait线程函数的暂停问题
帖子发表于 : 2008-12-02 13:33 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
xhy,
我试过了,有点问题
在我包含#Include<time.h>
#include<sys/time.h>
#include<pthread.h>后
int i=pthread_cond_timedwait(..........)
if(i==ETIMEDOUT)
{
.................
}
压根就编译不过去,系统提示就没有ETIMEDOUT这东西,man上明明写着有哪
撒回事,都说说


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译