linux sleep能線程延時麼
sleep能延時。 linux sleep指令可以用來將目前動作延遲一段時間,語法「sleep [--help] [--version] number[smhd]」;預設情況下,sleep指令會延遲幾秒鐘,但允許使用後綴指定時間單位來指定延遲的秒數、分鐘、小時或天數。
本教學操作環境:linux7.3系統、Dell G3電腦。
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'; sleep 5; date '+%r'
在此範例中,需要使用分號(;)分隔每個指令。
2、發出等待N分鐘的指令
#一般情況下,sleep指令允許我們使用字尾指定時間單位,這個可以在sleep指令中使用以下後綴表示:
s– 以秒為單位指定時間單位。
m– 以分鐘為單位指定時間單位。
h– 以小時為單位指定時間單位。
d– 以天為單位指定時間單位。
所以,這裡將使用'm'後綴休眠1分鐘:
$ date '+%r'; sleep 1m; date '+%r'
3、讓指令休眠X分秒
其實還可以在sleep指令中使用多個字尾。在這種情況下,持續時間是透過將所有值相加來計算的。
為了理解這一點,以下將使用指令休眠1分20秒,指令如下:
$ date '+%r'; sleep 1m 20s; date '+%r'
在上面的範例中,使用了兩個不同的字尾。但是,也可以使用相同的後綴。例如可以用2s和3s字尾來休眠5秒,指令如下:
$ date '+%r'; sleep 2s 3s; date '+%r'
4、透過sleep指令使用浮點數
此外,sleep指令也接受一個浮點數作為輸入,這樣可以使用這種方法睡眠不到一秒鐘。例如,可以使用0.5s值休眠半秒:
$ date '+%r'; sleep 0.5s; date '+%r'
在上面的輸出中,可以看到date指令為秒時間單位顯示了相同的值。
除此之外,還可以使用帶有其它後綴的浮點值。例如,可以使用0.5m值休眠30秒:
$ date '+%r'; sleep 0.5m; date '+%r'
5、使用sleep指令模擬鬧鐘
在前面的幾個例子中,主要介紹如何使用sleep指令來延遲下一個指令的執行。另外,也可以使用這個技巧來模擬鬧鐘。
因此,接下來使用以下指令在5秒後設定警報:
$ sleep 5; cvlc alarm.mp3
上述指令在等待5秒後使用VLC媒體播放器開啟alarm.mp3檔案。就像任何其它Linux命令一樣,可以使用ctrl c組合鍵來停止VLC媒體播放器。
sleep指令的使用實例
#先讓程式睡30 秒
#從字面意思看,想必你已經猜出來sleep 指令的作用啦。簡單地說,sleep 就是讓程序稍稍休息一下,然後,再繼續工作(休息是為了更好地工作…)。
我們讓Shell 程式小憩30 秒:
#睡眠30秒 [roc@roclinux ~]$ sleep 30s #让date命令来监督, 看看是不是真的睡了30秒 [roc@roclinux ~]$ date;sleep 30s; date Thu Feb 25 08:25:17 CST 2016 Thu Feb 25 08:25:47 CST 2016
睡眠時間個性化
sleep 指令雖然簡單,但我們可以對它進行個性化定制,讓它變得更好玩一些。
一般來說,sleep 指令後面跟的數值是用來表示時間的,是時間就要有單位,如果我們不指定單位的話,它預設的單位是什麼呢?
[roc@roclinux ~]$ date; sleep 1; date Thu Feb 25 09:55:47 CST 2016 Thu Feb 25 09:55:48 CST 2016
從這個範例來看,預設的單位就是秒啦,和指定單位 s 有同等的效果。
有秒的話,還應該有分鐘和小時才對,那麼這些單位在 sleep 中如何表示呢?
s:表示秒
m:表示分鐘
- ##h:表示小時
- d:表示天
[roc@roclinux ~]$ date; sleep 1m; date Thu Feb 25 10:00:43 CST 2016 Thu Feb 25 10:01:43 CST 2016
[roc@roclinux ~]$ date; sleep 100; date Thu Feb 25 10:12:28 CST 2016 Thu Feb 25 10:14:08 CST 2016
#注意: 分钟和秒之间一定要有空格哦 [roc@roclinux ~]$ date; sleep 1m 40s; date Thu Feb 25 10:17:04 CST 2016 Thu Feb 25 10:18:44 CST 2016
这种方法简单、直接,节省了我们不少的思考时间。
在 sleep 中最大的单位是 d(天),如果想表示更长的时间,比如周、月、年的话,那么你只能把它们转换成天来表示了。
# 这样, Shell程序乖乖地沉睡 "一周2小时5分4秒" [roc@roclinux ~]$ date; sleep 7d 2h 5m 4s; date Thu Feb 25 10:17:04 CST 2016 Thu Feb 25 10:18:44 CST 2016
毫秒级睡眠时间可不可以
sleep 命令的默认时间单位是秒,但对于高速运行的程序来说,“秒”还是显得太长了。那 sleep 能不能实现毫秒级的睡眠呢?答案是可以的,例如,我们让 Shell 程序睡眠 3 毫秒:
[roc@roclinux ~]$ time sleep 0.003 real 0m0.004s user 0m0.000s sys 0m0.001s
time 可以通过浮点数的方式实现毫秒级的睡眠,但这里有一点需要注意,即睡眠时间的精度。sleep 命令只能保证 10ms 级别的精度控制,对于小于 10ms 的睡眠时间是存在误差的。实际应用中,如果你对时间精度要求特别高的话,sleep 或许不是一个正确的选择,还是请考虑其他方法吧。
sleep 的过程中 CPU 是否被占用
默认情况下,sleep 的进程是不占用 CPU 时间的,我们可以通过实验来说明这个问题:
[roc@roclinux ~]$ \time sleep 1 0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 2560maxresident)k 0inputs+0outputs (0major+200minor)pagefaults 0swaps
看到了吗?0.00user、0.00system、0%CPU 这三个输出项都表明 sleep 是不会耗费 CPU 的计算资源的。
注意:上面使用了\time命令,它指代的是 /usr/bin/time,而不是 Shell 内置的 time 命令。/usr/bin/time 命令可以显示更多的信息,而 Shell 内置的命令做不到这一点。
相关推荐:《Linux视频教程》
以上是linux sleep能線程延時麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。
