[Unix/Linux] Thread Pool 구현 [1]









Thread Pool을 만들 일이 있어 포스팅 합니다.


일단 Event Driven 형식으로 Epoll Event가 오면, 작업을 시작하는데,

Non-Block을 하려하지만 큰 파일 전송 상황을 가정하여 ThreadPool로 구현합니다.


구현을 위해서, thread 작업 클래스가 필요하며,

작업이 끝남을 알기위해, flag를 넣었습니다.


일단 기초 작업이며,


이것을 base로 작업하시면 요긴하실 것 같습니다.
Unix Thread Pool Example
























 우선적으로 threadPool로 사용할 클래스입니다.
 작업 시 필요한 것을 class화 시키고, flag 또한 dataClass에 넣습니다.




Unix Thread Pool Example


































작업이 끝남을 확인하기 위한 ch_flag Test입니다.





Unix Thread Pool Example











































StartService 시, false -> true로 바꾸고
do_work(thread 작업) 시 true -> false로 재변환 합니다.

그리고 endService() 에서 종료를 검사합니다.







Unix Thread Pool Example









다음은 실행 시 결과입니다.



이를 바탕으로 thread pool을 구현하겠습니다.



추가로 읽으면 좋을 것

댓글

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)