queue 高效的原因:底层使用了 dequeue
dequeue:
[1] C 编写
[2] dequeu 的 append 和 popleft 方法的时间复杂度均为 O(1)
[3] 完全避免了 realloc(),当空间不够时,再分配一个 block 即可
[4] 一个 block 的默认大小为 64,避免了频繁调用 malloc() 和 free()
[5] block 内元素的指针连续,利用了缓存的局部性
dequeue 源码:https://github.com/python/cpython/blob/3.6/Modules/_collectionsmodule.c