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

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">