본문 바로가기
무모한 도전-주식 인공지능 만들기

멀티 프로세스를 이용한 병렬처리에 들어가 보기 -9-

by 인터넷떠돌이 2020. 2. 28.
반응형

안녕하세요?

 

지난번 포스팅에서 어떻게 부모 프로세스까지 자동으로 모든 작업이 다 완료가 되면 종료시키려고 했습니다만, 문제는 자식 프로세스가 다 종료되고 나서 이렇게 되는 것이 아니라, 먼저 종료가 되고, 자식 프로세스는 자식 프로세스대로 움직이는 문제가 나왔습니다.

 

그래서 일단 자식 프로세스에서 부모 프로세스로 정보를 전달하기 위해서, 위 스크린샷과 같이 sys.stdout.write라는 식으로 하나 만들어 보았습니다.

 

그리고 나서 원래의 부모 프로세스로 가서, 위 스크린샷처럼 일단 만들어 놓기는 놓아서, 읽어 오도록 해 봅니다. 이렇게 해서 정보를 가지고 오는데는 성공했느냐 하면........

 

우선 10개의 자식 프로세스가 한껀번에 실행이 되는 것 까지는 확인을 할 수 있기는 있었습니다. 그런데 문제는 무엇이냐 하면.........

 

상당수의 정보가 그냥 빈 상태로 출력이 된다는 점에 있습니다. 그럼 이렇게 보기만 하면 아무런 정보도 오지 않았느냐 할 수 있는데 그건 또 아닌 것이.........

 

 

위 스크린샷처럼 제대로 된 정보를 받아오는 것도 있기는 있었습니다. 그래서 이렇게 해서는 많이 어렵겠다는 생각이 들어서 다른 방법을 강구해 보아야 했습니다.

 

먼저 부모 프로세스에 정보를 보내는 것은 취소하고자, 해당하는 코드를 주석처리해서 못 쓰도록 만들어 놓았습니다. 이렇게 해서 다음은..........

 

이번에는 QProcess에서 할 수 있는 ProcessState()를 이용해서 자식 프로세스가 종료가 되었는지 아닌지 한번 알아보는 방법으로 전환을 했습니다.

 

이렇게 해서 일단 하나 실행을 시켜보았습니다. 일단 10개의 자식 프로세스가 작동을 하는 것 까지는 확인을 할 수 있기는 있었습니다.

 

일단 계속해서 0만 뜨는 것을 확인할 수 있었습니다. 이렇게 해서는 아무런 성과가 없는 것이 아닌가 하는 생각도 들었습니다만.......

 

우선 결과를 확인해 보니, 제대로 결과를 내는 것 까지는 확인을 할 수 있었습니다. 그럼 여기서 있는 폴더가 그냥 빈 폴더인지 아닌지를 확인해 보아야 합니다.

 

일단 이렇게 해서 제대로 결과가 나오는 것 까지는 확인을 할 수 있기는 있었습니다. 다만 이렇게 하고서도 제대로 제가 원하는 부모 프로세스의 종료가 자동으로 되지 않는다는 문제점이 있었는데, 이걸 어떻게 해결해야 할지는 아직도 모르겠다는 생각이 듭니다.

반응형