inflearn logo
강의

Course

Instructor

Python for Advanced Users: Learn the Grammar of Concurrency and Parallelism Feat. Multithreading vs. Multiprocessing (Inflearn Original)

Thread(3) - ThreadPoolExecutor

ThreadPoolExecutor 에서 max_workers 질문입니다.

1517

alicia93

7 asked

2

max_workers 옵션을 사용할때 작업의 개수가 넘어가면 직접설정이 유리하다고 하셨는데요..!

작업의 개수가 넘어간다는 말의 의미가 뭔지 이해가 가지 않습니다 ㅠㅠ 혹시 좀 더 자세하게 설명해주실 수 있을까요?

python 동시성

Answer 1

0

niceman

오 은정님 안녕하세요.

답변드릴께요

예를 들어 시스템에 2개의 물리적 CPU가 있고 각 CPU에 하이퍼스레딩(현대 CPU에서 일반적임)이 있는 경우 2개의 물리적 CPU와 4개의 논리적 CPU가 있습니다. 파이썬은 4개의 CPU를 출력할거예요. 그러면 시스템의 기본 작업자 스레드 수는 (4 + 4) 또는 8이 됩니다.

이 숫자가 32개 이상(예: 물리적 코어 16개, 논리 코어 32개, 더하기 4개)이면 기본값은 상한을 32개 스레드로 자르게되요.

시스템에서 CPU(물리적 또는 논리적)보다 더 많은 스레드를 갖는 것이 일반이예요.

그 이유는 스레드가 CPU 바운드 작업이 아닌 IO 바운드 작업에 사용되기 때문인데요. 즉, 하드 드라이브, DVD 드라이브, 프린터, 네트워크 연결 등과 같이 상대적으로 느린 리소스가 응답하기를 기다리는 작업에 스레드가 사용되요.

따라서 특정 요구 사항에 따라 응용 프로그램에 수십, 수백, 심지어 수천 개의 스레드가 있는 것은 드문 일이 아닙니다. 하나 또는 수천 개 이상의 스레드가 있는 것은 드문 일입니다. 이렇게 많은 스레드가 필요한 경우 AsyncIO와 같은 대체 솔루션이 선호될 수 있다는 뜻이예요.

Pros and Cons 관련하여 질문드립니다

0

57

1

daemon=True가 안 먹히네요

0

80

2

threadpoolexecutor.submit 실행 시 순차 실행

0

211

2

queue 를 사용하는 이유?

1

223

1

멀티프로세싱 관련 질문

0

176

1

python gil 삭제

0

369

1

4분:59초 질문 그룹쓰레드 (5). 대기중인 작업 -> Queue -> 완료 상태조사 -> 결과 또는 예외 -> 단일화(캡슐화) 에 관해서

0

165

1

데몬스레드 설명

0

235

1

작업영역 질문

0

302

1

cmd에서 code작성시 기존에 깔아둔 vscode에서 이상한 화면이 뜨네요

0

284

1

ThreadPoolExecutor에서 작업중인 쓰레드가 있을때 대기할수 있는 방법이 있는지요?

0

271

1

py_ad_2_5_2 Sharing State의 Argument 부분

0

296

1

Thread(4) 16:10 스레드 질문

0

334

1

파이썬 병렬처리 관련 질문이 있습니다.

0

345

1

10:10쯤에 질문있습니다.

0

249

1

multiprocessing(5) - Queue 공유 질문 in multiprocess

0

429

1

seleniumwire multiprocessing 에러

0

723

1

logging과 print 차이 질문입니다..!

0

655

1

확장프로그램 질문입니다

0

291

1

KeyboardInterrupt 시 p.join에서 exception 발생

0

410

1

경쟁상태,교착상태, 메모리영역

0

253

1

ProcessPoolExecutor 사용 시 pid 증가

0

349

1

multiprocess 환경에서 특정 Process에 문제가 있거나 죽었을때 처리 방법

0

746

1

1-3강의 내용중 질문있습니다.

0

234

1