Computer Science/Python (2) 썸네일형 리스트형 [Python] 이터레이터(iterator)와 제너레이터(generator) 이터레이터 이터레이터는 next() 함수 호출 시 계속 그다음 값을 반환하는 객체이다. >>> a = [1, 2, 3] >>> ia = iter(a) >>> type(ia) >>> next(ia) 1 >>> next(ia) 2 >>> next(ia) 3 리스트는 for문과 같은 반복 구문을 적용할 수 있는 반복 가능(iterable) 객체이지만, 이터레이터 객체는 아니다. >>> a = [1, 2, 3] >>> next(a) Traceback (most recent call last): File "", line 1, in TypeError: 'list' object is not an iterator 이터레이터의 값을 가져오는 가장 일반적인 방법은 다음과 같이 for문을 이용하는 것이다. for문을 이용하.. [Python] GIL(Global interpreter Lock), 파이썬 병렬 처리 속도 향상, multiprocessing GIL GIL(Global interpreter Lock) : 파이썬 인터프리터가 객체들에 대한 접근을 보호하기 위해 한 스레드만 하나의 바이트코드를 실행 시킬 수 있도록 해주는 Lock 파이썬은 이러한 GIL 때문에 싱글스레드 기반병렬 처리가 어렵다. 이를 해결하기 위해, Spark에서 병렬 모듈을 쓰거나 파이썬에서 병렬 프로세싱을 지원하는 라이브러리를 쓸 수 있다. multiprocessing multiprocessing은 Python에서 멀티 프로세스를 활용하여 2가지 또는 그 이상의 일을 동시에 실행할 수 있게 하는 모듈이다. ex) 다음은 CPU 연산이 많은 heavy_work() 함수를 4번 실행하고 그 소요 시간을 측정하는 예제이다. import time def heavy_work(name).. 이전 1 다음