Python多处理是否对资源密集?

时间:2018-05-22 05:23:09

标签: python multithreading multiprocessing python-multiprocessing

由于GIL,CPython无法实现CPU限制的并行化。 官方文档建议使用多处理而不是多线程。 那么,与多线程相比,任何其他编程语言(如Java或C ++)的多处理/多线程性能在多处理和多线程中支持真正的并行化时,是否会比多线程更多地使用多个进程?

1 个答案:

答案 0 :(得分:1)

除了分叉(类似unix的系统)或重新生成进程的成本之外,python中的多处理几乎没有固有的额外成本。费用是指需要在流程之间共享数据或状态。这可以是从Pool.map的可迭代到Manager中的代理的任何内容。只要这些成本与每个工艺的工作负荷相比保持较低,就可以进行清洗。 (注意,python通常比java和c ++慢,其他原因与mp无关。)