태그 보관물: control-flow

control-flow

2 개의 while 루프를 실행하는 가장 효율적인 방법 되는 것을 보았습니다 . while true;

현재 두 개의 다른 while루프를 사용 하여 창 관리자 dwm 과 시스템 정보를 인쇄하는 상태 표시 줄을 시작합니다.

현재 내 솔루션은 다음과 같이 동일한 스크립트에서 연속적으로 실행하는 것입니다.

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 스파이크를 일으키는 것으로 보입니다. 효율성 측면에서 (자원에 대한 최소 요청 등)이 두 루프를 실행하는 가장 좋은 방법은 무엇입니까?



답변

나는 분명한 것을 지적하고 있는지 확실하지 않지만 첫 번째 방법은 영원히 실행되는 두 개의 루프를 만드는 것이고, 두 번째는 무한 루프를 만드는 무한 루프를 만드는 것이므로 끝없이 끝날 것입니다. 무한 루프 수 증가. 무한 루프를 만들고 dwm을 실행 한 다음 또 다른 무한 루프를 만듭니다. 첫 번째 무한 루프가 중지되지 않았습니다. 각 패스는 다른 패스가 이미 실행중인 경우에도 다른 dwm-status 루프를 만듭니다 ( while true무한하게 계속 실행 함)


답변