본문 바로가기
Python/알고리즘팁

파이썬 Queue vs Deque 어느것을 사용할 까?

by 붕어사랑 티스토리 2022. 12. 9.
반응형

Queue와 Deque 알고리즘을 풀 때 어느것을 사용해야 될 까

 

 

 

queue — A synchronized queue class — Python 3.7.14 documentation

queue — A synchronized queue class Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It is especially useful in threaded programming when information must be exchanged safely between multiple threads. The Queue

docs.python.org

파이썬 공식문서의 Queue 모듈 내용을 보면 다음과 같은 내용이 있다

 

collections.deque is an alternative implementation of unbounded queues with fast atomic append() and popleft() operations that do not require locking.

 

여기서 deque이 훌륭한 대체제이고 locking을 요구 하지 않는다고 나와 있다.

 

 

그리고 Queue 모듈의 내용을 읽으면 계속해서 Thread safe, multi 어쩌구 얘기가 나온다.

즉 Queue는 한마디로 비동기 작업에 thread safe 한 목적으로 구현된 것을 알 수 있다.

 

 

그리고 소스코드를 까보면 안에 뮤텍스 관련된게 있다.

 

그리고 하나 재밌는 사실이 있다. Queue 모듈은 내부적으로 deque를 사용한다..

 

 

 

 

 

결론 : 알고리즘 풀 때 deque를 사용하자

 

queue는 나중에 서버개발 할 일 있을 때 사용하는 것으로...

반응형

댓글