본문 바로가기

카테고리 없음

[ENAS만판다] Python3 MultiProcessing 예제

 

 

간단하게 가이드 코드만 작성해서 보여주려고 함

 

import multiprocessing as mp

def method1():
	// 돌리려는 함수 1
    return
    
def method2():
	// 돌리려는 함수 2
    return
    
    
if __name__ == '__main__':
	mp.set_start_method('spawn')
    
    mp1 = mp.Process(target = method1, args = ())
    mp2 = mp.Process(target = method2, args = ())
    
    mp1.start()
    mp2.start()

 

만일 변수를 공유시키고 싶으면 이렇게 하면 된다.

multiprocessing의 Value 를 활용하여 하겠다. Array로 하고 싶은 사람들은 다른 레퍼런스를 찾아서 구현하면 된다.

 

import multiprocessing as mp
import time

def method1(share_value):
	# 돌리려는 함수 1
    # 1초 간격으로 반복적으로 -1과 1을 넣어보겠다. 
    while True :
        if share_value.value == 1 :
        	share_value.value = -1
        else : 
        	share_value.value = 1
        time.sleep(1)
    return
    
def method2(share_value):
	# 돌리려는 함수 2
    # 출력만 해보겠다.
    
    while True :
    	print('shared value is : {}'.format(share_value.value))
    
    return
    
    
if __name__ == '__main__':
	mp.set_start_method('spawn')
    
    share_value = mp.Value('i', -1) # int형 CType 변수
    
    mp1 = mp.Process(target = method1, args = (share_value))
    mp2 = mp.Process(target = method2, args = (share_value))
    
    mp1.start()
    mp2.start()
    
    mp1.join()
    mp2.join()