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무한히 실행되도록 함).

관련 정보