分享更有价值
被信任是一种快乐

linux sleep能不能线程延时

文章页正文上

这篇文章主要介绍“linux sleep能不能线程延时”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux sleep能不能线程延时”文章能帮助大家解决问题。 sleep能延时。linux sleep命令可以用来将目前动作延迟一段时间,语法“sleep [–help] [–version] number[smhd]”;默认情况下,sleep命令会延迟几秒钟,但允许使用后缀指定时间单位来指定延迟的秒数、分钟、小时或天数。Linux sleep命令介绍Linux sleep命令可以用来将目前动作延迟一段时间。使用权限:所有使用者。语法

sleep[--help][--version]number[smhd]

参数说明:–help : 显示辅助讯息–version : 显示版本编号number : 时间长度,后面可接 s、m、h 或 d其中 s 为秒,m 为 分钟,h 为小时,d 为日数1、延迟Linux命令执行默认情况下,sleep命令会等待几秒钟。为了理解这一点,让我们在使用sleep命令前和后输出当前时间。例如,以下命令在打印当前时间后等待5秒再次打印时间:

$date'+%r';sleep5;date'+%r'

在此示例中,需要使用分号(;)分隔每个命令。2、发出等待N分钟的命令一般情况下,sleep命令允许我们使用后缀指定时间单位,这个可以在sleep命令中使用以下后缀表示:s– 以秒为单位指定时间单位。m– 以分钟为单位指定时间单位。h– 以小时为单位指定时间单位。d– 以天为单位指定时间单位。所以,这里将使用’m’后缀休眠1分钟:

$date'+%r';sleep1m;date'+%r'

3、让命令休眠X分秒其实还可以在sleep命令中使用多个后缀。在这种情况下,持续时间是通过将所有值相加来计算的。为了理解这一点,下面将使用命令休眠1分20秒,命令如下:

$date'+%r';sleep1m20s;date'+%r'

在上面的示例中,使用了两个不同的后缀。但是,也可以使用相同的后缀。比如可以用2s和3s后缀来休眠5秒,命令如下:

$date'+%r';sleep2s3s;date'+%r'

4、通过sleep命令使用浮点数此外,sleep命令还接受一个浮点数作为输入,这样可以使用这种方法睡眠不到一秒钟。例如,可以使用0.5s值休眠半秒:

$date'+%r';sleep0.5s;date'+%r'

在上面的输出中,可以看到date命令为秒时间单位显示了相同的值。除此之外,还可以使用带有其它后缀的浮点值。例如,可以使用0.5m值休眠30秒:

$date'+%r';sleep0.5m;date'+%r'

5、使用sleep命令模拟闹钟在前面的几个例子中,主要介绍了如何使用sleep命令来延迟下一个命令的执行。另外,还可以使用这个技巧来模拟闹钟。因此,接下来使用以下命令在5秒后设置警报:

$sleep5;cvlcalarm.mp3

上述命令在等待5秒后使用VLC媒体播放器打开alarm.mp3文件。就像任何其它Linux命令一样,可以使用ctrl+c组合键来停止VLC媒体播放器。sleep命令的使用实例先让程序睡上 30 秒从字面意思看,想必你已经猜出来 sleep 命令的作用啦。简单地说,sleep 就是让程序稍稍休息一下,然后,再继续工作(休息是为了更好地工作……)。我们让 Shell 程序小憩 30 秒:

#睡眠30秒
[roc@roclinux~]$sleep30s

#让date命令来监督,看看是不是真的睡了30秒
[roc@roclinux~]$date;sleep30s;date
ThuFeb2508:25:17CST2016
ThuFeb2508:25:47CST2016

睡眠时间个性化sleep 命令虽然简单,但我们可以对它进行个性化定制,让它变得更好玩一些。一般来说,sleep 命令后面跟的数值是用来表示时间的,是时间就要有单位,如果我们不指定单位的话,它默认的单位是什么呢?

[roc@roclinux~]$date;sleep1;date
ThuFeb2509:55:47CST2016
ThuFeb2509:55:48CST2016

从这个示例来看,默认的单位就是秒啦,和指定单位 s 有同等的效果。有秒的话,还应该有分钟和小时才对,那这些单位在 sleep 中如何表示呢?s:表示秒m:表示分钟h:表示小时d:表示天比如,如果想让 Shell 程序睡眠 1 分钟,应该如何操作呢?

[roc@roclinux~]$date;sleep1m;date
ThuFeb2510:00:43CST2016
ThuFeb2510:01:43CST2016

那如果想让 shell 程序睡眠 1 小时的话,直接把单位换成 h 就可以了。如果我们想让 shell 程序睡眠 1 分 40 秒,又该怎么操作呢?1 分=60 秒,1 分 40 秒=100 秒,可以直接让计算机睡眠 100 秒。

[roc@roclinux~]$date;sleep100;date
ThuFeb2510:12:28CST2016
ThuFeb2510:14:08CST2016

其实呢,sleep 比你想象得还要体贴,你可以直接这样输入:

#注意:分钟和秒之间一定免费云主机、域名要有空格哦
[roc@roclinux~]$date;sleep1m40s;date
ThuFeb2510:17:04CST2016
ThuFeb2510:18:44CST2016

这种方法简单、直接,节省了我们不少的思考时间。在 sleep 中最大的单位是 d(天),如果想表示更长的时间,比如周、月、年的话,那么你只能把它们转换成天来表示了。

#这样,Shell程序乖乖地沉睡"一周2小时5分4秒"
[roc@roclinux~]$date;sleep7d2h5m4s;date
ThuFeb2510:17:04CST2016
ThuFeb2510:18:44CST2016

毫秒级睡眠时间可不可以sleep 命令的默认时间单位是秒,但对于高速运行的程序来说,“秒”还是显得太长了。那 sleep 能不能实现毫秒级的睡眠呢?答案是可以的,例如,我们让 Shell 程序睡眠 3 毫秒:

[roc@roclinux~]$timesleep0.003

real0m0.004s
user0m0.000s
sys0m0.001s

time 可以通过浮点数的方式实现毫秒级的睡眠,但这里有一点需要注意,即睡眠时间的精度。sleep 命令只能保证 10ms 级别的精度控制,对于小于 10ms 的睡眠时间是存在误差的。实际应用中,如果你对时间精度要求特别高的话,sleep 或许不是一个正确的选择,还是请考虑其他方法吧。sleep 的过程中 CPU 是否被占用默认情况下,sleep 的进程是不占用 CPU 时间的,我们可以通过实验来说明这个问题:

[roc@roclinux~]$timesleep1
0.00user0.00system0:01.00elapsed0%CPU(0avgtext+0avgdata2560maxresident)k
0inputs+0outputs(0major+200minor)pagefaults0swaps

看到了吗?0.00user、0.00system、0%CPU 这三个输出项都表明 sleep 是不会耗费 CPU 的计算资源的。注意:上面使用了time命令,它指代的是 /usr/bin/time,而不是 Shell 内置的 time 命令。/usr/bin/time 命令可以显示更多的信息,而 Shell 内置的命令做不到这一点。关于“linux sleep能不能线程延时”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注云技术行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: windows steamvac封禁如何解封

本篇内容主要讲解“windows 免费云主机、域名steamvac封禁如何解封”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows steamvac封禁如何解封”吧! 1、首先打开steam,点击上方的“s…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册