目前我使用两个不同的while
循环来启动我的窗口管理器dwm和将系统信息打印到它的状态栏。
我目前的解决方案是在同一个脚本中连续运行它们,如下所示:
while true; do
$HOME/Scripts/dwm-status
sleep 2s
done &
while true; do
dwm >/dev/null
done
Run Code Online (Sandbox Code Playgroud)
while true; do
while true; do
$HOME/Scripts/dwm-status
sleep 2s
done &
dwm >/dev/null
done
Run Code Online (Sandbox Code Playgroud)
第二个似乎导致 CPU 峰值。在效率方面(最少占用资源等),运行这两个循环的最佳方法是什么,为什么?
我不确定我是否指出了一些明显的东西,但第一种方法是创建两个永远运行的循环,而第二种方法是创建一个无限循环来创建无限循环,所以你最终会得到一个永远- 增加无限循环的数量。它创建一个无限循环,运行 dwm,然后创建另一个无限循环——第一个无限循环还没有停止。每次传递都会产生另一个 dwm-status 循环,即使其他循环已经在运行(while true
将使它们无限期地运行)