메인 쓰레드와 부 쓰레드간의 속도 문제
글쓴이: duraduri / 작성시간: 목, 2008/01/10 - 12:51오전
안녕하세요 쓰레드와 관련하여 질문하고 싶습니다.
이전의 질문한 글에 완료를 추가하니 연속으로 쓰는것 처럼 되었네요.
현재 메인쓰레드에서는 비쥬얼적인 처리를 하고있으며
새로 생성된 쓰레드에서는 이것저것 그림 파일을 분석해서 작업을 하는
일들을 하고 있습니다. 하지만 부쓰레드가 연산을 많이 해서 그런지
메인쓰레드가 버벅이네요.. 현재 부쓰레드에 Sleep을 해주었지만 그래도
만족할 정도는 아니여서 이렇게 질문을 남깁니다.
종종 멀티쓰레드 프로그램 중에 메인쓰레드도 매끄럽게 돌아가는게 있어
정말 밤이 깊지만 잠을 못자고 있습니다.
그럼 좋은 밤 되세요!
Forums:
condition variable을
condition variable을 이용해서 작업이 순서대로 이뤄지도록 하면 해결될겁니다.
혹은 barrier를 이용해서 time step을 나눠서 일정부분만큼씩 쪼개서 작업이 가능해지도록
해주면 됩니다.
========================================
* 부분이 전체를 대변하는 하나의 속성일때 진리이다.
영속적이지 못한 것은 전체가 될 수 없다.
========================================
* The truth will set you free.
..
부쓰레드의 우선순위를 낮추는것도 방법이지만...
제 경험으로는..
부쓰레드의 일이 많아서인경우보다
쓰레드간 동기화 문제 땜시 버벅이는 경우가 더 심각하더군요.
다중 쓰레딩 프로그램의 동기화는 필수이지만...
동기화가 필요한 부분과 필요하지 않은 부분을 분명하게 분리하고.
동기화도 필요한 만큼만 최소한으로 해야하고
동기화가 최대한 필요 없도록 시스템 구조를 갖춰야 한다고 생각합니다.
동기화가 제대로 되어 있지 않다면...
CPU 4~8개 붙어 있는 머신에서 2 쓰레드 사용하는 프로그램도 버벅일 수 뿐이 없습니다.
댓글 달기