간단하게 가이드 코드만 작성해서 보여주려고 함
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()