현재 두 개의 다른 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
무한하게 계속 실행 함)