1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) = 1,000,000,000 纳秒(ns) = 1,000,000,000,000 皮秒(ps)
比较
比较部分主要是参考了这篇
linux 下面的sleep,usleep,nanosleep 和select比较
方法名称 | 精度单位 |
---|---|
sleep | 秒 |
usleep | 微秒 |
select | 微秒 |
其中同样精度是微秒
usleep有线程安全问题,具体是什么问题参考这篇
linux 下面的sleep,usleep,nanosleep 和select比较
实现
select
struct timeval delay;
//秒级延时不用我说了吧?
//不会吧不会吧?不会真的有人要我解释秒级定时要怎么写吧??(老阴阳人了 )
//秒级别的定时把0改了就好,比如29秒延时改成,29
delay.tv_sec = 0;
//10*1000是10毫秒,如果延时的时间是在一秒以内只需要改下面这句
//毫秒级别的定时把10改了就好,比如29毫秒延时改成,29*1000
delay.tv_usec = 10 * 1000; // 10 ms
select(0, NULL, NULL, NULL, &delay);
sleep
秒级延时,如果需要改延时时间,把a的值改了就好
#include<stdio.h>
int main()
{
int a;
a=1;
printf("hello");
sleep(a);
printf("world");
return 0;
}
usleep
秒级延时,如果需要改延时时间,把a的值改了就好
#include<stdio.h>
int main()
{
int a;
a=1;
printf("hello");
usleep(a);
printf("world");
return 0;
}
没想到吧?没想到我直接复制sleep的吧哈哈哈
补充吐槽
一般来说我都是用sleep和usleep做延时,为什么呢?
因为只需要一句话就好了。
现在可能会更多的用select了吧,毕竟啥线程安全的我也不懂,但是规避了就能少一堆乱七八糟的bug也不错
反正这篇博文写出来,以后要写select也简单了
复制粘贴完了