예를 들어 loop를 만번 돈다고 했을 때 CPU 사용량을 보면 부하가 많이 걸림을 알 수 있습니다. 윈도우 환경같은 경우는
AfxGetApp()->PumpMessage();
를 호출함으로서 오랫동안 루프가 돌 때 윈도우가 응답하지 않는 현상을
해결할 수 있습니다. 리눅스같은 경우에 윈도우의 PumpMessage같은 역할을 해 주는 함수나 시스템 콜이 있는지 알고 싶습니다.
아시는 분 계시면 답변 부탁드립니다.
리눅스 프로그래밍중에서 메시지 드리븐인 경우와, 기존의 순차적인
경우로 나눌수 있을것 같습니다.
말씀하신 윈도우프로그래밍은 메시지드리븐 방식이기 때문에 PumpMsg
함수의 부수효과로 (내부적으로 Event커널객체를 기다리면서 블록-->스위칭유발)
심한 부하를 막아주는 것이지만, 리눅스는 제가 짐작하건데 순차적인 일반적인
프로그램을 말하신다면 간단히 sleep 이 좋을듯 합니다. 녀석이 스위칭을 유발하겠죠~
리눅스 프로그래밍중에서 메시지 드리븐인 경우와, 기존의 순차적인경우로
리눅스 프로그래밍중에서 메시지 드리븐인 경우와, 기존의 순차적인
경우로 나눌수 있을것 같습니다.
말씀하신 윈도우프로그래밍은 메시지드리븐 방식이기 때문에 PumpMsg
함수의 부수효과로 (내부적으로 Event커널객체를 기다리면서 블록-->스위칭유발)
심한 부하를 막아주는 것이지만, 리눅스는 제가 짐작하건데 순차적인 일반적인
프로그램을 말하신다면 간단히 sleep 이 좋을듯 합니다. 녀석이 스위칭을 유발하겠죠~
^^ be cool ~
http://fromdj.pe.kr
리눅스는 원칙적으로 순차실행입니다.다만 X윈도우 프로그래밍을 할 경우
리눅스는 원칙적으로 순차실행입니다.
다만 X윈도우 프로그래밍을 할 경우 스레드와 X 이벤트 대기함수를 조합해서
구현이 가능하죠.
Written By the Black Knight of Destruction
댓글 달기