如何让一个线程睡眠? - Better Work, Better Life

如何让一个线程睡眠?

啄木鸟 posted @ 2009年5月21日 00:39 in APLE with tags Posix thread MultiThread , 943 阅读

1. sleep系列

       >> sleep( )usleep( )man手册中的描述是挂起调用该函数的进程。由于linux用进程来模拟线程,因此在Linux环境下,用这两个函数来挂起单个线程是安全的。

       >> nanosleep( ),在man手册中的描述是挂起调用该函数的线程。

2. 变相挂起

       >> select( )方式,一段示例如下:      

void  select_ms_sleep(unsigned long msdelay)
{
        struct timeval timeout;

        timeout.tv_sec = msdelay/1000;
        timeout.tv_usec = (msdelay%1000)*1000;

        select( 0, NULL, NULL, NULL, &timeout );

}

       >> pthread_cond_timedwait( )方式。

 

===================================================================

[声明]本站所有文章除Reference和Observation分类及特别注明外,均属原创。转载引用请注明出处。

===================================================================

  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee