06번 예제를 만들어서 실행
05번 예제를 복사해서 우선 그대로 가져오겠다.

func 라는 작업이 있다 이것은 단지 하나의 작업이다
이 작업은 다른 프로세스에게 똑같은 일을 또 시킬 수 있는 그런 작업이다.
여기서 child 를 여러개 만들어 보겠다.

넘버링은 다르게 해서 각 똑같은 것들을 만들어 보았다.
똑같은 작업을 맡아서 처리하는 3개의 하위 프로세스를 각 각 만든 게 된다.
print 부분 05.py 를 06.py로 수정 후 실행해보겠다.
06.py 출력

출력 결과 1480 이 06.py 의 ID로, 메인 프로세스 아이디인 것이다.
그리고 메인 프로세스로부터 뻗어 나가서 생긴 친구들이 1482, 1483, 1484 인 것이다.
이것들이 각 child1의 target, child2의 target, , child2의 target 이 된다.
여기서 좀 더 자세히 보고 싶다면 time.sleep 을 이용하여 딜레이를 넣어보자 그렇다면 차이를 볼 수 있다.
time의 sleep 함수 같은 경우는 초 단위로 딜레이를 만드는 함수이다
06.py 재출력

다시 실행해보면 랜덤값으로 다시 ID 가 출력된 내역과,
1초에 한 번 딜레이되어 출력이 차례대로 되는 것을 확인해 볼 수 있다.
child1의 target = 1617,
child2의 target = 1620,
child2의 target = 1621
순서대로 출력
마지막으로 예제를 추가로 만들어 서로 다른 작업을 하는 프로세스를 만들어보겠다.

임포트 부분은 06.py와 동일하게 가져와준다.
그리고 이번에는 함수를 각 각 다르게 만들어 주겠다.
이렇게 되면 작업이 다 다르게 되는데, 이 다른 작업들에게 프로세스 생성을 하나 씩 맡겨 보겠다.

06.py에서 진행했던 if 부분을 복사해서 가져온 후 이번에는 06.py를 07.py로 변경해준다.
그리고 func 부분을 각 coke, cider, juice 로 변경하고 실행해보겠다.
07.py 출력

이번에도 1초 씩 딜레이 되어 각 프로세스 아이디가 출력되는 것을 확인할 수 있다.
이렇게 멀티 프로세싱을 연습을 해보았다.
파이썬으로는 인터페이스가 매우 간단한데 C, JAVA 로도 이런 작업을 할 수 있다.
'프로그램_기본이론' 카테고리의 다른 글
| 프로세스 생성(실습) (0) | 2024.04.05 |
|---|---|
| 프로세스 생성 (0) | 2024.04.05 |
| 프로세스_컨텍스트 스위칭 (1) | 2024.04.05 |
| 프로세스 상태(실습) (0) | 2024.04.05 |
| 프로세스 상태 (0) | 2024.04.05 |