C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71613] Re:쓰레드 사용시 CPU 과부하 문제.
김시환 [godson2] 4039 읽음    2014-07-25 08:47
Sleep을 좀 주면 괜찮아 질텐데요..

void __fastcall TGuiThread::Execute()
{
         while(!Terminated)
         {
              if(eGUI->WaitFor(500)==wrSignaled){
                     Synchronize(&UpdateGUI);
                 }  
                 Sleep(10) ;    // 시간은 적절히 주시면 될듯 
    }
}


JG 님이 쓰신 글 :
: 안녕하세요. 요즘 멀티 쓰레드 프로그램을 작성 중입니다.
: 임베디드 리눅스로 쓰레드를 사용해봐서, 빌더와 크게 다르지 않을 것이라고
: 생가하고 크게 당하고(??)있습니다.
: 다름아니라, 쓰레드 오브젝트를 생성하고 아래와 같은 형식으로 Execute 작성중입니다.
:
: void __fastcall TGuiThread::Execute()
: {
:         while(!Terminated){
:          	if(eGUI->WaitFor(500)==wrSignaled){
:                 	Synchronize(&UpdateGUI);
:                 }   
: 	}
: }
: 
: void __fastcall TUpdateThread::Execute()
: {
:         while(!Terminated){
:          	if(eStat->WaitFor(500)==wrSignaled){
:                 	Update();
:                 }   
: 	}
: }
: 

:
: 일정 이벤트 수십개를 5개 정도 쓰레드에 분배하여 작성하려하는데,
: 위와 같이  while(!Terminated){ } 부분이 존재할 경우 쓰레드를 시작하고 난 후
: 개별  쓰레드의 CPU 점유율이 과도하게 높아져 3개 정도의 쓰레드를 사용하여도
: CPU LOAD가 70% 정도에 육박합니다. 제가 해당 쓰레드에 대한 이해가 부족하여 사용방법에 문제가 있는것으로 보이는데요.
: 위와 같이 일정 이벤트가 들어오기를 지속적으로 감시하여야 하는 상황인데, CPU의 부하를 줄일수 있는 방법이 없을까요?

+ -

관련 글 리스트
71612 쓰레드 사용시 CPU 과부하 문제. JG 4266 2014/07/24
71613     Re:쓰레드 사용시 CPU 과부하 문제. 김시환 4039 2014/07/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.