inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)

강의 - 섹션1. Multithreading 질문

245

toaehddn

작성한 질문수 29

0

안녕하세요, 강사님.
우선 다시한번 좋은강의에 감사드립니다.
 
섹션1을 다 듣고나서, 정리를 하고 궁금한 부분들을 한번에 질문드립니다.
제가 컴퓨터쪽 전공이 아니라서 용어나 잘 모르는 부분이 많아 질문이 깔끔하지 않은점 이해 부탁드립니다.
 
미리 답변에 감사드립니다.
 
1. threading.Lock()이 어느한쓰레드에서 acquire()되는 순간, 그 프로세스 내 모든 thread들은 그 threading.Lock()이 release() 될때까지 작동을 못한다고 이해하면 되나요?
 
2. (강사님 이전강의를 안들어서 with문이 익숙하지 않네요ㅠㅠ 구글링을 최대한 해보며 이해하려고 노력해봤는데...) with문 안에서는 그 with문 안에 있는 모든 thread 작업들이 끝나야지 with문을 나온다고 보면 되나요?
 
3. producer and consumer 개념에서, Queue에 아직 무엇인가가 남아있다면, consumer는 그걸 다 처리할때까지 기다리나요? 아니면 Queue에는 무엇인가가 남아있더라도 consumer를 종료하면 그대로 끝나버리나요? (사실 후자가 맞을것 같은데... Queue에 남아있는 상태에서 consumer가 종료되는 코드를 스스로 좀 구현해보려고 했는데 잘안되네요)
 
4. concurrent.futures.ThreadPoolExecutor로 submit()을 한 결과에 result()를 확인하고자하면, 그 thread의 계산이 끝나서 result()에 값(return)이 들어올때까지 기다리는것 같은데 맞나요? (즉... thread1실행시 그 위에서 thread2를 실행하는 중인데, thread2의 result()를 보고자하면 thread2가 끝날때까지 thread1이 더이상 진행되지 않는것이 맞나요?)
 
5. 4번과 비슷하게, map은 단순히 submit 여러개를 편하게 해주는것 같은데... map의 결과(generator)를 list()로 감싸고 프린트하려고 하면 똑같이 그 thread가 끝날때까지 기다리나요?
 
6. 어떤 공유변수를 동기화하면서 가야한다면 멀티스레드/멀티프로세스가 성능의 측면에서는 이득이 없는것이 맞나요?

python 동시성

답변 1

1

좋은사람

안녕하세요~~
 
해당 강의는 전체 강의를 다 듣고 질문하시면 범위를 좁히실 수 있습니다.
 
1. 네
 
2. with context는 별도의 구문안에서 반드시 실행해야하는 작업을 수행하는데 의미가 있어여!
 
3. 옵션으로 조절 가능합니다. 레퍼런스 확인하세요!
 
4. 네
 
5. 마찬가지로 데몬스레드 옵션일 경우 작업 중 or 작업 이후로 사용할 수 있습니다. 스레드 기초 파트가
중요합니다.
 
6. 경우에 따라 다릅니다. 멀티 스레드가 유리한 작업일 수도 있고 고속 병렬로 연산처리라면
멀티 프로세스가 압도적으로 빠릅니다.

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

0

72

1

daemon=True가 안 먹히네요

0

98

2

threadpoolexecutor.submit 실행 시 순차 실행

0

222

2

queue 를 사용하는 이유?

1

241

1

멀티프로세싱 관련 질문

0

189

1

python gil 삭제

0

371

1

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

0

174

1

데몬스레드 설명

0

241

1

작업영역 질문

0

310

1

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

0

290

1

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

0

286

1

py_ad_2_5_2 Sharing State의 Argument 부분

0

301

1

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

0

343

1

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

0

352

1

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

0

257

1

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

0

436

1

seleniumwire multiprocessing 에러

0

729

1

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

0

671

1

확장프로그램 질문입니다

0

299

1

KeyboardInterrupt 시 p.join에서 exception 발생

0

420

1

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

0

259

1

ProcessPoolExecutor 사용 시 pid 증가

0

354

1

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

0

754

1

ThreadPoolExecutor 에서 max_workers 질문입니다.

2

1533

1