인프런 커뮤니티 질문&답변
TaskCreationOptions.LongRunning에 관해 질문 있습니다!
작성
·
754
1
위에 다른분이 TaskCreationOptions.LongRunning에 관한 질문한 글을 봤습니다. 거기서 선생님이 하신 말씀으로는 "LongRunning 설정 시 그냥 새로운 쓰레드를 생성하게 됩니다." 라고 하셨고 아래 링크를 달아주셔서 확인해 봤습니다.
링크는 이거였고, 답글중에
ThreadPool thread is lightweight and cheap since could be rescheduled to serve a new request from the ThreadPool, so as soon as thread operation is done, ThreadPool could reschedule the same thread for other operation.
라는 답변이 있었는데요, 새로운 쓰레드를 생성하는게 아니라 스레드를 스케줄링한다(?) 라는 개념으로 해석되는데 어느것이 맞는건가요?
질문을 좀 요약하면 아래와 같을 것 같습니다.

답변 1
1
살짝 오해하셨는데 위 링크의 원 질문은
[새로운 쓰레드 생성 vs ThreadPool]에 관한 질문입니다.
질문에서 Long Running Process라는게
ThreadPool의 TaskCreationOptions.LongRunning을 이용한다는 의미가 아니고
말 그대로 오래 걸리는 작업이 있을 때
[새로 쓰레드를 생성하는게 좋으냐? ThreadPool로 실행하는게 좋으냐?] 를 물은겁니다.
위 답변이 TaskCreationOptions.LongRunning 옵션에 관한 내용입니다.
LongRunning 옵션을 주면 새로운 쓰레드가 생성된다! 고 답변을 주셨네요.
위 내용은 그냥 ThreadPool에 관한 일반적인 내용이고
새로운 쓰레드 생성 vs ThreadPool에 관한 답변입니다.
즉 간단한 작업이 있으면 쓰레드를 새로 생성하기 보다는
그냥 자체적으로 관리되고 있는 ThreadPool에 넘기는게 좋다는 것이죠.
따라서 LongRunning 옵션을 주면 내부적으로 새 쓰레드 할당이 맞습니다.






아 이해했습니다! 답변 감사합니다~~