Chinaunix首页 | 论坛 | 博客
  • 博客访问: 492752
  • 博文数量: 133
  • 博客积分: 1235
  • 博客等级: 少尉
  • 技术积分: 1201
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-08 19:59
文章分类

全部博文(133)

文章存档

2023年(12)

2022年(3)

2018年(2)

2017年(4)

2016年(4)

2015年(42)

2014年(1)

2013年(12)

2012年(16)

2011年(36)

2010年(1)

分类: LINUX

2011-11-22 16:22:33

1. struct timeval tv;
   tv.tv_usec = 0;
   tv.tv_sec = 1;
   select(1,NULL,NULL,NULL,&tv);
  使线程睡眠1秒.
 
2.
 
    void sleepthread(int sectime,int nsectime)
{
    pthread_cond_t mycond = PTHREAD_COND_INITIALIZER;
   
   
    pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER;
    struct timespec ts;
    int rv;
     //1 second = 1000 ms    1ms = 1000 us       1us = 1000ns
    struct timeval now;
   gettimeofday(&now, NULL);
    ts.tv_sec = now.tv_sec + sectime ;
    ts.tv_nsec = now.tv_usec * 1000 + nsectime;
  
            pthread_mutex_lock(&mymutex);
            rv = pthread_cond_timedwait(&mycond, &mymutex, &ts);
            switch(rv)
            {
            case ETIMEDOUT:
                    printf("timeout occur \n");
                    break;
            case EINTR:
                    printf("interrupt occur \n");
           
            default:
                    /* Handle errors */
            case 0:
                    break;
            }
            pthread_mutex_unlock(&mymutex);

}
阅读(969) | 评论(0) | 转发(0) |
0

上一篇:获取cputick的函数

下一篇:linux 下信号处理

给主人留下些什么吧!~~