incoming()연결이 들어올 때마다 반복합니다.
thread::spawn매 요청마다 운영체제 스레드를 새로 만듭니다.
위험
요청 폭주 시 스레드 수도 제한 없이 증가합니다.
호출 코드는 execute에 작업을 맡기고, 스레드 생성 수와
대기열 관리는 ThreadPool 내부 구현으로 감춥니다.
incoming()연결이 들어올 때마다 반복합니다.
thread::spawn매 요청마다 운영체제 스레드를 새로 만듭니다.
요청 폭주 시 스레드 수도 제한 없이 증가합니다.
ThreadPool::new(4)워커 수를 먼저 제한합니다.
pool.execute작업 클로저를 풀에 제출합니다.
동시성은 얻고 리소스 상한은 유지합니다.
API
호출부는 spawn과 비슷한 감각을 유지합니다.
구현
워커, 채널, 큐는 라이브러리 내부로 숨깁니다.
학습 포인트
컴파일러 에러를 따라 필요한 타입을 채워갑니다.