• 공부한 날짜: 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가 되었고, 마지막이 아닌 중간에 출력되었다

+ Recent posts