안녕하세요??
파이썬에서 큐로 작업을 받아 쓰레드로 실행 하는 예제를 바로 적어드리겠습니다
import threading
import queue
import os
import time
# 신규 쓰레드에서 실행할 함수
def ProcFunc(queue):
while True:
a = queue.get()
print( 'ProcFunc(', os.getpid(), ':', threading.get_ident(), ')', a )
queue.task_done()
# 신규 쓰레드로 job 을 전송할 큐 생성
queue = queue.Queue()
# 신규 쓰레드 생성
# 처음 시작하는 파이썬 도서에서는 p.daemon = True 가 없어서 모든 작업 완료후, 프로세스가 종료되지 않는다.
p = threading.Thread( target=ProcFunc, args=(queue,))
p.daemon = True
p.start()
# 1초 간격으로 job 을 전송
for t in [ '1', '2', '3', '4' ]:
print( 'Loop(', os.getpid(), ':', threading.get_ident(), ')', t )
queue.put( t )
time.sleep(1)
queue.join()