- 공부한 날짜: 2021.11.
-이전 내용들과 겹치는 내용이 있지만 반복적인 학습을 위해 또 포스팅함
- 서브 프로세스 함수(proc_func) 정의
- main 함수 정의
- logging format 설정
- logging.basicConfig(format=,level=, datafmt=)
- 함수 인자 확인
- Process(target=, arg=(여기에 들어가는게 proc_func의 파라미터가 됨)
- p.start(): 프로세스 시작
- p.join(): 쓰레드/ 프로세스가 작업을 완료될 때까지 기다리게 하는 메서드.
-프로세스는 여러번 join 될 수 있으며, 교착상태를 유발할 수 있으므로 프로세스는 자기 자신을 Join할 수 없다.
-프로세스가 시작되기 전에 프로세스에 조인하려고 하면 에러가 발생함
-p.join()을 너어주지 않으면 자식 프로세스는 유휴상태(idle)에 들어가고, 종료되지 않아 좀비 프로세스가 되어 손수 kill 해줘야함
-출처: http://pertinency.blogspot.com/2019/10/join.html
- p.is_alive(): 프로세스가 살아있는지 아닌지를 반환한다. 프로세스 객체는 start() 메서드가 반환하는 순간부터 자식 프로세스가 종료될때까지 살아있다. 자식 프로세스가 종료되면 프로세스는 종료되므로 출력값이 false가 되는건가?
-출처: https://docs.python.org/ko/3/library/multiprocessing.html
- 메인 함수 시작
- p.join()을 넣었을 때와 안 넣었을 때의 결과 값 비교
-p.join() 존재
-p.join() 비존재
: alive의 값이 True가 되었고, 마지막이 아닌 중간에 출력되었다
'Dev Language > Python' 카테고리의 다른 글
[파이썬_4] #8. Multiprocessing- ProcessPoolExecutor (0) | 2021.12.07 |
---|---|
[파이썬_4] #7. Multiprocessing(2)- Naming (0) | 2021.12.07 |
[파이썬_4]#5. Process vs Thread and Parallelism (0) | 2021.12.07 |
[파이썬_4] #4. Lock & DeadLock, Semaphore & Mutex (2) | 2021.12.02 |
[파이썬_4] #3. ThreadPoolExecutor (0) | 2021.12.02 |