由于GIL,CPython无法实现CPU限制的并行化。 官方文档建议使用多处理而不是多线程。 那么,与多线程相比,任何其他编程语言(如Java或C ++)的多处理/多线程性能在多处理和多线程中支持真正的并行化时,是否会比多线程更多地使用多个进程?
答案 0 :(得分:1)
除了分叉(类似unix的系统)或重新生成进程的成本之外,python中的多处理几乎没有固有的额外成本。费用是指需要在流程之间共享数据或状态。这可以是从Pool.map
的可迭代到Manager
中的代理的任何内容。只要这些成本与每个工艺的工作负荷相比保持较低,就可以进行清洗。 (注意,python通常比java和c ++慢,其他原因与mp无关。)