Python

list 에서 Queue로 옮기기

jinmc 2021. 3. 9. 14:09
반응형

이 이슈를 접한 것은, 제가 쓰던 프로그램에서

os.listdir을 사용하였기 때문입니다.

os.listdir을 사용했을 때 deque를 사용하는 방법은 다음과 같습니다.

from collections import deque

dq = deque(os.listdir('.'))

하지만 멀티 쓰레드 애플리케이션의 경우에는 deque보다는 queue.Queue를 사용하는게 좋다고 말했습니다.

하지만 queue.Queue(os.listdir('.')) 는 통용되지 않습니다.

 

그럼 직접 옮겨야 되는데, 다음 참고할 만한 레퍼런스가 있습니다.

stackoverflow.com/questions/21639888/is-it-possible-to-convert-list-to-queue-in-python/41581928 

import queue

l = [i for i in range(1000)]

q = queue.Queue()
[q.put(i) for i in l]

q2 = queue.Queue()
q2.queue = queue.deque(l)

위에서 두 가지 방법이 있는데, 

q2가 q 보다 훨씬 100배 이상 빠르다고 합니다.

다음에는 코드 성능 측정하는 방법도 알아보면 좋겠네요~

 

반응형