1. ホーム
  2. スクリプト・コラム
  3. ルア

Luaでsleep関数を実装する4つの方法

2022-02-13 19:48:42

残念ながら、Luaには組み込みのsleep関数がないので、DIYする必要があります。sleep関数を実装する方法は、以下の4つです。

方法1

コピーコード コードは以下の通りです。

--sets an exit condition in a dead loop, but this takes up a lot of CPU resources and is strongly discouraged
function sleep(n)
   local t0 = os.clock()
   while os.clock() - t0 <= n do end
end

方法2
コピーコード コードは以下の通りです。

--calls the system sleep function, which does not consume CPU, but this command is not built-in in Windows (if you install Cygwin again, it is fine). It is recommended to use this method on Linux systems
function sleep(n)
   os.execute("sleep " . n)
end

方法3
コピーコード コードは以下の通りです。

-- Although Windows does not have a built-in sleep command, we can take a little advantage of the nature of the ping command
function sleep(n)
   if n > 0 then os.execute("ping -n " . tonumber(n + 1) ... " localhost > NUL") end
end

方法4
コピーコード コードは以下の通りです。

--Using the select function in the socket library, you can pass 0.1 to n to make the hibernation time accurate to the millisecond level.
require("socket")
function sleep(n)
   socket.select(nil, nil, n)
end