用于使用模拟线程模块的进程的包
processing的Python项目详细描述
处理是python语言的一个包,它支持 使用标准库的api生成进程 线程化模块。它可以在unix和windows上运行。
功能:
- 可以使用管道或 多生产者/多消费者队列。
- 对象可以在使用服务器进程的进程之间共享,或者 (用于简单数据)共享内存。
- 与线程中的所有同步原语等价 有空。
- 一个池类可以很容易地将任务提交给一个工人池 过程。
链接
项目主办地
该软件包可从
示例
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]