deque que区别Python中的Q和de

更高级的,如上面的注释所说,支持替换底层容器,例如,Last In First Out,使用list替换了原本的deque

就可以打开Queue的源代码了,queue.py。下面看看Queue的源码,很短。

实际上,Queue的底层使用了deque,Queue构造的时候会先调用这个_init,构造底层容器

如果只是想用一个简单的队列,可能从名字上看上去“Queue”更合适。当然用是可以用的,不过,Queue相比deque有个坏处:慢不少。

像这种东西,强行看,也能理解,但是想自己写出来,在数学上没有race condition,怕是困难重重。

注意,Python里的Condition把关联的Lock封到内部了,和C++不一样。Python里的Condition构造的时候,可以使用外部传入的Lock,如果不传,会自己构造一个Lock自己用。

其实从类名也有所反映,dict等一样是小写的首字母。Queue是很高级的同步设施,该返回就返回。join等同步用接口,如果想线程间同步,该阻塞就阻塞,而deque是和list,而deque只是个容器。有例如get_nowait,用Queue。Queue是大写的首字母;生产者消费者什么的,总之,如果只想要一个队列容器,用deque;

deque que区别Python中的Q和de

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

滚动到顶部