2つのwhileループを実行する最も効率的な方法

2つのwhileループを実行する最も効率的な方法

現在、私は2つの異なる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

2番目はCPUスパイクを引き起こすようです。効率性(最小リソース呼び出しなど)の観点からこれらの2つのループを実行する最良の方法は何ですか?なぜ?

ベストアンサー1

私が何か明白なことを指摘したかはわかりませんが、最初の方法は永遠に実行される2つのループを作成することです。永遠に循環。 - 無限ループの回数を増やします。無限ループを作成し、dwmを実行して、別の無限ループを作成します。最初の無限ループはまだ停止していません。各パスは、他のループがすでに実行されていても、別のdwm-statusループを生成します(while true無限に実行するようにします)。

おすすめ記事