티스토리 뷰
python queue를 이용한 multiprocessing 기초 뼈대
import multiprocessing
#동작 실행 함수
def do_work(item):
print item
#Queue 전달 함수
def worker(q):
for item in iter(q.get, None):
do_work(item)
q.task_done()
q.task_done()
#메인 함수
def main():
#동작 프로세스 개수
num_procs = 5
#큐 데이터
items = [1,2,3,4,5,6,7,8,9,10]
q = multiprocessing.JoinableQueue()
procs = []
for i in range(num_procs):
procs.append(multiprocessing.Process(target=worker, args=(q,) ))
procs[-1].daemon = True
procs[-1].start()
for item in items:
q.put(item)
q.join()
for p in procs:
q.put(None)
q.join()
for p in procs:
p.join()
q.__init__()
print "Finished everything...."
print "num active children:", multiprocessing.active_children()
if __name__ == '__main__':
main()
Queue 데이터와 do_work의 동작 함수를 적절하게 수정하면 여러 방면으로 활용 가능
multi thread 방식보다 multi process 방식이 빠르다
'Programming > Python' 카테고리의 다른 글
파이썬3 user-agent 변경하여 web 파싱하기 (0) | 2017.04.07 |
---|---|
python terminal color print (0) | 2017.04.04 |
파이썬3 네이버 환율 정보 파싱 (1) | 2017.04.03 |
- Total
- Today
- Yesterday
- python3 환율
- terminal print color
- python queue
- python
- python color print
- python3
- python3 환율 api
- 파이썬
- 파이썬 병렬
- tar 압축
- 우분투
- docker 사용법
- termcolor
- 뉴스기사번역
- python web framework
- 파이썬3 크롤러
- 우분트 프로세스 백그라운드
- docker 설치
- python thread
- 파이썬 웹파싱
- 도커 사용법
- python3 파싱
- 파이썬 파싱
- multiprocessing
- multiprocess
- 도커 설치
- python multiprocess
- 우분투 tar
- apt-get error
- 파이썬 user-agent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |