如题最近弄 python
发现性能还是差点意思但项目已经是 python
了但其中的小脚本是不是能用我刚才说的方案呢?
如题最近弄 python
发现性能还是差点意思但项目已经是 python
了但其中的小脚本是不是能用我刚才说的方案呢?
python的标准库提供了两个模块去实现并行操作,一个是 multiprocessing
, 一个是 concurrent.futures.ProcessPoolExecutor
, 都支持对进程的创建,数量最大等于你的机器的核心数量,二者都是真正的并行,可以突破GIL的限制,毕竟GIL的限制是单进程下同一时刻仅能一个线程在执行。
当然 go
或者 rust
通过命令行的形式去调用py脚本也可以,但是为啥要这么麻烦?如果你们之间不需要通信,这方式也太费事了吧。
7 回答5.4k 阅读
6 回答7k 阅读✓ 已解决
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
多进程并行,Go的话可以用 os/exec 包来调用外部 Python 脚本。Rust的话可以用 std::process::Command 来调用外部 Python 脚本。 Go 或者 Rust 要和 Python 进程通信,用进程间通信 (IPC) 方法就行。