相关文章推荐
宽容的莲藕  ·  万字长文带你深入理解协程|业界设计和实现的决 ...·  2 周前    · 
曾经爱过的南瓜  ·  Unable to open socket ...·  1 周前    · 
大方的手电筒  ·  抖音主播小鱼海棠为什么有很多黑粉? - 知乎·  1 年前    · 
魁梧的大熊猫  ·  SNH48星梦剧院全攻略 - 哔哩哔哩·  2 年前    · 
温暖的可乐  ·  广汽菲亚特广州工厂奠基 - 广汽集团·  2 年前    · 
忐忑的感冒药  ·  掀翻李昌镐,串烧九大高手,留下千古名局,罗洗 ...·  2 年前    · 
朝气蓬勃的煎鸡蛋  ·  朱颜漫画完结了吗 - 抖音·  2 年前    · 
Code  ›  lua中的sleep实现 - 菜鸟++
科技新闻 博客园 lua socket
https://www.cnblogs.com/keystone/p/12869876.html
道上混的滑板
2 年前

这篇文章主要介绍了Lua中实现sleep函数功能的4种方法,本文讲解了在一个死循环中设置一个跳出条件方法、调用系统的sleep函数法、Windows下ping命令法、socket库中select函数法4种方法,需要的朋友可以参考下

一个不幸的消息是Lua中没有内置sleep函数,我们需要DIY。有4种方法可以实现sleep函数,如下:

复制代码 代码如下:

--在一个死循环中设置一个跳出条件,但是这样的做法会占用大量CPU资源,强烈不推荐使用哦
function sleep(n)
local t0 = os.clock()
while os.clock() - t0 <= n do end
end
复制代码 代码如下:

--调用系统的sleep函数,不消耗CPU,但是Windows系统中没有内置这个命令(如果你又安装Cygwin神马的也行)。推荐在Linux系统中使用该方法
function sleep(n)
os.execute("sleep " .. n)
end
复制代码 代码如下:

--虽然Windows没有内置sleep命令,但是我们可以稍微利用下ping命令的性质
function sleep(n)
if n > 0 then os.execute("ping -n " .. tonumber(n + 1) .. " localhost > NUL") end
end
复制代码 代码如下:

--使用socket库中select函数,可以传递0.1给n,使得休眠的时间精度达到毫秒级别。
‍require("socket")
function sleep(n)
socket.select(nil, nil, n)
end
 
推荐文章
宽容的莲藕  ·  万字长文带你深入理解协程|业界设计和实现的决策分析开发者社区
2 周前
曾经爱过的南瓜  ·  Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can
1 周前
大方的手电筒  ·  抖音主播小鱼海棠为什么有很多黑粉? - 知乎
1 年前
魁梧的大熊猫  ·  SNH48星梦剧院全攻略 - 哔哩哔哩
2 年前
温暖的可乐  ·  广汽菲亚特广州工厂奠基 - 广汽集团
2 年前
忐忑的感冒药  ·  掀翻李昌镐,串烧九大高手,留下千古名局,罗洗河神奇三星杯之旅 - 简书
2 年前
朝气蓬勃的煎鸡蛋  ·  朱颜漫画完结了吗 - 抖音
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号