Commit 56e968c5 authored by Richard Oudkerk's avatar Richard Oudkerk

Issue #18277: Document quirks of multiprocessing queue.

parent 65e27fcc
...@@ -486,6 +486,23 @@ Note that one can also create a shared queue by using a manager object -- see ...@@ -486,6 +486,23 @@ Note that one can also create a shared queue by using a manager object -- see
the :mod:`multiprocessing` namespace so you need to import them from the :mod:`multiprocessing` namespace so you need to import them from
:mod:`Queue`. :mod:`Queue`.
.. note::
When an object is put on a queue, the object is pickled and a
background thread later flushes the pickled data to an underlying
pipe. This has some consequences which are a little surprising,
but should not cause any pratical difficulties -- you can always
use a managed queue if they really bother you.
(1) After putting an object on an empty queue there may be an
infinitessimal delay before the queue's :meth:`~Queue.empty`
method returns :const:`False` and :meth:`~Queue.get_nowait` can
return without raising :exc:`Queue.Empty`.
(2) If multiple processes are enqueuing objects, it is possible for
the objects to be received at the other end out-of-order.
However, objects enqueued by the same process will always be in
the expected order with respect to each other.
.. warning:: .. warning::
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment