运行 2 个 while 循环的最有效方法

运行 2 个 while 循环的最有效方法

目前我使用两个不同的while循环来启动我的窗口管理器,数据管理,以及向其打印系统信息的状态栏。

我目前的解决方案是在同一个脚本中连续运行它们,如下所示:

while true; do
        $HOME/Scripts/dwm-status
        sleep 2s
    done &
while true; do
    dwm >/dev/null
done

我也有看到它运行作为嵌套while循环,如下所示:

while true; do
        while true; do
            $HOME/Scripts/dwm-status
            sleep 2s
        done &
        dwm >/dev/null
    done

第二个似乎会导致 CPU 峰值。就效率(最少调用资源等)而言,运行这两个循环的最佳方法是什么?为什么?

答案1

我不确定我是否指出了一些明显的事情,但第一种方法是创建两个永远运行的循环,而第二种方法是创建一个无限循环,它创建无限循环,所以你最终会得到一个永远运行的循环。 -增加无限循环的数量。它创建一个无限循环,运行 dwm,然后创建另一个无限循环 - 第一个无限循环尚未停止。每次传递都会产生另一个 dwm-status 循环,即使其他循环已经在运行(while true将使它们无限期地运行)

相关内容