如何在一个不同的毫秒间隔内睡眠过程

时间:2016-05-28 21:48:28

标签: c linux sleep

我正在阅读Sleep nanosleep usleep,但我不确定使用哪一个,以及如何正确使用它......

我需要为每个'10,20,30,40,50毫秒'的random号码进行一个进程休眠。

我怎样才能做到这一点?

我正在测试:

Sleep(rand()%1500);  

但我想知道是否可以在一行中设置该间隔。

1 个答案:

答案 0 :(得分:3)

  1. 您必须参考unistd.h
  2. 然后使用函数rand()& usleep()
  3. 样本可能是:

    // edited as @JonathanLeffler advised
    ...
    #include <unistd.h>
    ...
    
    void foo(int someArgs) {
        ...
        useconds_t sleepTime;
    
        ...
        // create random int r where 0 <= r < 0x7fffffff
        sleepTime = (useconds_t)(((rand() % 5) + 1) * 10000); 
        usleep(sleepTime);
        ...
    
        // for a single line preference, following may work it out
        usleep(((rand() % 5) + 1) * 10000);
    
    }