本篇 ShengYu 介紹 Windows/Linux/Unix 平台 C/C++ sleep 函式用法與範例,sleep 就是讓程式暫停執行一段時間,各平台的 sleep 函式名稱與使用方法不盡相同,將會在本篇一一說明,
在 Windows 平台的 Sleep (毫秒)
在 Windows 平台的 Sleep()
的時間單位是毫秒(ms / millisecond),所以要延遲1秒的話就是1000毫秒,寫法如下,1
2
3
// ...
Sleep(1000); // 1s
在 Linux/Unix 平台的 sleep (秒)
在 Linux / Unix 平台的 sleep()
的時間單位是秒(s / second),寫法如下,1
2
3
// ...
sleep(1); // 1s
在 Linux/Unix 平台的 usleep (微秒)
承上例,那麼在 Linux / Unix 平台下想要 sleep 的時間單位是秒級以下呢?
Linux / Unix 平台下有個 usleep()
函式,usleep 的時間單位是微秒(us / microsecond),寫法如下,1
2
3
// ...
usleep(1000*1000); // 1s
另外 Linux/Unix 平台還有 nanosleep()
函式,時間單位為納秒 (ns / nanosecond),關於這部分下次我再寫一篇給大家講解,
C++11 的 sleep_for
跨平台開發的話以 C++11 所提供的 sleep_for 最為方便,現今編譯器已普遍支援,寫法如下,提供了各種時間單位,1
2
3
4
5
6
7
8
9
10
// ...
std::this_thread::sleep_for(std::chrono::seconds(1)); // 1s
// or
std::this_thread::sleep_for(std::chrono::milliseconds(1000)); // 1s
// or
std::this_thread::sleep_for(std::chrono::microseconds(1000*1000)); // 1s
// or
std::this_thread::sleep_for(std::chrono::nanoseconds(1000*1000*1000)); // 1s