2016년 11월 8일 화요일
[Unix/Linux] Thread Pool 구현 [1]
Thread Pool을 만들 일이 있어 포스팅 합니다.
일단 Event Driven 형식으로 Epoll Event가 오면, 작업을 시작하는데,
Non-Block을 하려하지만 큰 파일 전송 상황을 가정하여 ThreadPool로 구현합니다.
구현을 위해서, thread 작업 클래스가 필요하며,
작업이 끝남을 알기위해, flag를 넣었습니다.
일단 기초 작업이며,
이것을 base로 작업하시면 요긴하실 것 같습니다.
우선적으로 threadPool로 사용할 클래스입니다.
작업 시 필요한 것을 class화 시키고, flag 또한 dataClass에 넣습니다.
작업이 끝남을 확인하기 위한 ch_flag Test입니다.
StartService 시, false -> true로 바꾸고
do_work(thread 작업) 시 true -> false로 재변환 합니다.
그리고 endService() 에서 종료를 검사합니다.
다음은 실행 시 결과입니다.
이를 바탕으로 thread pool을 구현하겠습니다.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기