sleep

简介: sleep

Lua 语言没有内置的 Sleep 函数, 有 4 种方法可以实现 Sleep 函数功能:


死循环

Warning

强烈不推荐使用。


在一个死循环中设置一个跳出条件,但是这样的做法会占用大量 CPU 资源。

function Sleep(n)
  local t0 = os.clock()
  while os.clock() - t0 <= n do end
end点击复制复制失败已复制


调用系统Sleep函数

提示

推荐在 Linux 系统中使用该方法


这种方法不消耗 CPU ,但是 Windows 系统中没有内置这个命令(或者使用 Cygwin )。

function Sleep(n)
  os.execute("sleep " .. n)
end点击复制复制失败已复制


ping

虽然Windows没有内置Sleep命令,但是利用ping命令的性质。

function Sleep(n)
  if n > 0 then os.execute("ping -n " .. tonumber(n + 1) .. " localhost > NUL") end
end点击复制复制失败已复制


socket.select

使用 socket 库中 select 函数, 可以传递 0.1n , 使得休眠的时间精度达到毫秒级别。

‍require("socket")
function Sleep(n)
  socket.select(nil, nil, n)
end
目录
相关文章
|
4月前
|
Java C# Python
线程等待(Thread Sleep)
线程等待(Thread Sleep)
|
5月前
|
Java 编译器 UED
Thread.sleep()总结
Thread.sleep()总结
|
6月前
|
存储 弹性计算 运维
sleep命令
【4月更文挑战第29天】
31 0
|
6月前
|
Unix 程序员 编译器
C++ Sleep 函数
C++ Sleep 函数
227 1
|
6月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用
Thread.sleep(0) 到底有什么用
53 1
sleep () 和 wait () 的区别
sleep () 和 wait () 的区别
82 0
|
Java 程序员
sleep 和 wait 的区别
Java 中,线程的 "sleep" 和 "wait" 方法区别
123 0
|
Java 调度 C++
你真的了解Thread.sleep(0)吗?以及Thread.sleep(1) vs Thread.sleep(0)
你真的了解Thread.sleep(0)吗?以及Thread.sleep(1) vs Thread.sleep(0)
|
调度 C++
Thread.sleep(0) vs Thread.sleep(1) vs Thread.yield() vs Object.wait()
Thread.sleep(0) vs Thread.sleep(1) vs Thread.yield() vs Object.wait()