[熱情]

Python 멀티 프로세싱 본문

Programming/python

Python 멀티 프로세싱

rootkaien 2017. 1. 5. 17:12



파이썬에서 thread보다 멀티 프로세싱을 더 선호한다고한다..


관련된 예제를 보여주는 블러그..


http://leosworld.tistory.com/13


http://qkqhxla1.tistory.com/270






http://hashcode.co.kr/questions/691/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EB%A9%80%ED%8B%B0%ED%94%84%EB%A1%9C%EC%84%B8%EC%8B%B1-vs-%EB%A9%80%ED%8B%B0-%EC%8A%A4%EB%A0%88%EB%94%A9




from multiprocessing import Process, Queue
import time


def do_work(start, end, result):
    sum = 0;
    for i in range(start, end):
        sum +=i
    result.put(sum)
    return

s_time = time.time()
if __name__ == '__main__':
    START, END = 0, 20000000
    result = Queue()
    pr1 = Process(target=do_work, args=(START, END/2, result))
    pr2 = Process(target=do_work, args=(END/2, END, result))

    pr1.start()
    pr2.start()
    pr1.join()
    pr2.join()
    result.put('STOP')
    sum = 0
    while True:
        tmp = result.get()
        if tmp == 'STOP':
            break
        else:
            sum += tmp
    print("Result : ", sum ,"time = ", time.time()-s_time)





from multiprocessing import Process

def f(name):
    print("hello ", name)

if __name__ == '__main__':
    p1 = Process(target=f, args=('kaien',))
    p2 = Process(target=f, args=('jiliun',))

    p1.start()
    p2.start()

    p1.join()
    p2.join()


from multiprocessing import Process
import os

def info(title):
    print(title)
    print('module name : ', __name__)
    if hasattr(os, 'getppid'):
        print('parent process : ', os.getppid())
    print('process id : ', os.getpid())

def f(name):
    info('function f')
    print('hello', name)

if __name__ == '__main__':
    info('main line')
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()








Comments