bcwalrus ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
..
doc ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
examples ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
lib ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
src ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
tests ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
CHANGES.txt ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
COPYING.txt ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
INSTALL.txt ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
PKG-INFO ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
README.txt ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
THANKS.txt ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
index.html ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren
setup.py ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 vor 15 Jahren

README.txt

.. default-role:: literal
.. include:: doc/version.txt

===================
Python processing
===================

:Author: R Oudkerk
:Contact: roudkerk at users.berlios.de
:Url: http://developer.berlios.de/projects/pyprocessing
:Version: |version|
:Licence: BSD Licence

`processing` is a package for the Python language which supports the
spawning of processes using the API of the standard library's
`threading` module. It runs on both Unix and Windows.

Features:

* Objects can be transferred between processes using pipes or
multi-producer/multi-consumer queues.

* Objects can be shared between processes using a server process or
(for simple data) shared memory.

* Equivalents of all the synchronization primitives in `threading`
are available.

* A `Pool` class makes it easy to submit tasks to a pool of worker
processes.


Links
=====

* `Documentation <./doc/index.html>`_
* `Installation instructions <./doc/INSTALL.html>`_
* `Changelog <./doc/CHANGES.html>`_
* `Acknowledgments <./doc/THANKS.html>`_
* `BSD Licence <./doc/COPYING.html>`_

The project is hosted at

* http://developer.berlios.de/projects/pyprocessing

The package can be downloaded from

* http://developer.berlios.de/project/filelist.php?group_id=9001 or
* http://pypi.python.org/pypi/processing


Examples
========

The `processing.Process` class follows the API of `threading.Thread`.
For example ::

from processing import Process, Queue

def f(q):
q.put('hello world')

if __name__ == '__main__':
q = Queue()
p = Process(target=f, args=[q])
p.start()
print q.get()
p.join()

Synchronization primitives like locks, semaphores and conditions are
available, for example ::

>>> from processing import Condition
>>> c = Condition()
>>> print c
), 0>
>>> c.acquire()
True
>>> print c
), 0>

One can also use a manager to create shared objects either in shared
memory or in a server process, for example ::

>>> from processing import Manager
>>> manager = Manager()
>>> l = manager.list(range(10))
>>> l.reverse()
>>> print l
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> print repr(l)


Tasks can be offloaded to a pool of worker processes in various ways,
for example ::

>>> from processing import Pool
>>> def f(x): return x*x
...
>>> p = Pool(4)
>>> result = p.mapAsync(f, range(10))
>>> print result.get(timeout=1)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]


.. raw:: html


width="124px" height="32px" border="0" alt="BerliOS Developer Logo">