Hello, Christophe Vandeplas <christophe <at> vandeplas.com> writes: > > From the documentation I understand that deques are thread-safe: > > Deques are a generalization of stacks and queues (the name is pronounced “deck” > > and is short for “double-ended queue”). Deques support thread-safe, memory > > efficient appends and pops from either side of the deque with approximately the > > same O(1) performance in either direction. > > It seems that appending to deques is indeed thread-safe, but not > iterating over them.
Indeed, if you read the above sentence, deques only support "thread-safe [...] appends and pops". Other operations are not necessarily thread-safe. Moreover, any operation which will call back into Python (such as iterating several times) are *not* thread-safe. Regardless, deques are not the right container for containment tests ("url in seen"). Like with lists or tuples, a containment test in a deque will be O(n). So if you want efficient containment tests, you should use a set or a dict. Regards Antoine. -- http://mail.python.org/mailman/listinfo/python-list