(<-) |
(->) |
2013 / April | ||||||
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
-1- | -2- | -3- | -4- | -5- | -6- | |
SMD |
||||||
-7- | -8- | -9- | -10- | -11- | -12- | -13- |
-14- | -15- | -16- | -17- | -18- | -19- | -20- |
-21- | -22- | -23- | -24- | -25- | -26- | -27- |
-28- | -29- | -30- | ||||
2013-04-03
해남으로 가는 버스안. 아이폰 USB 테더링이 안되서 Wifi로 연결중. http://ani2life.com/wp/?p=593 에 보면 뭔가 깔아서 설치하라는데 설치하려니 보안 오류. 그냥 구찮아서 와이파이로 인터넷
2013-04-18
Python multiprocessing 해보면서 신기해하는 중. Pool 인스턴스 메쏘드 imap이 순차적으로 결과를 내 놓으면서 입력도 이터레이터를 받을 수 있음을 알았다. 즉 순차적 병렬 프로세싱이 가능하다는.
1 from multiprocessing import Pool, cpu_count
2 import time
3 import random
4
5 def f(x):
6 sec = random.choice([1,2,3])
7 print 'before ', x, 'wait %s sec' % sec
8 time.sleep(sec)
9 print 'after ', x
10 return x*x
11
12 def aa():
13 i = 0
14 while i < 20:
15 yield i
16 i += 1
17
18 if __name__ == '__main__':
19 pool = Pool(processes=4)
20 for each in pool.imap(f, aa()):
21 print each
위 코드를 돌려보면 함수 f의 실행이 비동기적이면서도 출력이 순차적임을 알 수 있다. 입력을 제너레이터로 해도 됨. 즉 다음과 같은 코드가 가능하다.
파일을 라인단위로 읽어 대문자로 바꿔주는데 4개 프로세스로 진행된다. 순차적으로. (순서는 보장안함)
(<-) |
(->) |