wilson's story

multiprocessing , thread 사용하기 본문

Python

multiprocessing , thread 사용하기

wilson 2019. 11. 15. 14:50
반응형

여러개의 thread를 사용하면서 각각에서 반복문이 동작을 해야하는 경우 

하단의 소스와 같이 사용하시면 됩니다

import threading


def threadTest(val):
    while True:
        print(val)


def processTest1():
    test = "1"
    thread = threading.Thread(target=threadTest, args=(test,))
    thread.start()


def processTest2():
    test = "2"
    thread = threading.Thread(target=threadTest, args=(test,))
    thread.start()



if __name__ == '__main__':
    processTest1()
    processTest2()

 

아래와 같이 사용해도 동작은 합니다 

multiprocessing 하위에 thread를 구동 시켜보았습니다

여러 thread의 반복문이 잘 동작합니다.

하지만 위에 thread 소스 만큼의 속도는 나오지 않네요

from multiprocessing import Process, Queue, Pool
import threading
import time

def threadTest(val):
    while True:
        print(val)


def processTest1():
    test = "1"
    thread = threading.Thread(target=threadTest, args=(test,))
    thread.start()


def processTest2():
    test = "2"
    thread = threading.Thread(target=threadTest, args=(test,))
    thread.start()


if __name__ == '__main__':

    start_time = time.time()
    
    th1 = Process(target=processTest1(), args=())
    th1.start()
    th1.join()

    th2 = Process(target=processTest2(), args=())
    th2.start()
    th2.join()


    print("실행 시간 : %s초" % (time.time() - start_time))
반응형