跳转到主要内容

用于使用类似线程模块的过程的包

项目描述

processing 是一个支持使用标准库中 threading 模块的API创建进程的 Python 语言包。它可以在 Unix 和 Windows 上运行。

特性

  • 可以使用管道或多生产者/多消费者队列在进程间传输对象。

  • 可以使用服务器进程或(对于简单数据)共享内存在进程间共享对象。

  • 提供了 threading 中所有同步原语的等效功能。

  • 使用 Pool 类可以轻松将任务提交到工作进程池。

示例

processing.Process 类遵循 threading.Thread 的API。例如

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()

提供了锁、信号量和条件等同步原语,例如

>>> from processing import Condition
>>> c = Condition()
>>> print c
<Condition(<RLock(None, 0)>), 0>
>>> c.acquire()
True
>>> print c
<Condition(<RLock(MainProcess, 1)>), 0>

还可以使用管理器创建共享对象,无论是在共享内存中还是在服务器进程中,例如

>>> 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)
<Proxy[list] object at 0x00E1B3B0>

可以通过各种方式将任务卸载到工作进程池中,例如

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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分发

processing-0.52.zip (178.0 kB 查看哈希值)

上传时间 源代码

构建分发

processing-0.52.win32-py2.5.exe (191.2 kB 查看哈希值)

上传时间 源代码

processing-0.52.win32-py2.4.exe (189.7 kB 查看哈希值)

上传时间 源代码

由以下机构支持