take로 송신자를 꺼내 버려 채널 닫힘을 알립니다.
종료와 정리
ThreadPool 우아한 종료
서버가 끝날 때는 새 작업을 막고, 기다리는 워커가 빠져나오게 한 뒤, 각 스레드가 끝났는지 확인해야 합니다.
join은 소유권이 필요하므로 핸들을
Option에서 꺼냅니다.
수신 실패를 종료 신호로 받아 루프를 빠져나옵니다.
런타임은 비동기 작업 스케줄링과 종료 신호를 더 체계화합니다.