[Python]Multiprocessing vs Threading Python

来源:互联网 发布:maclc如何安装windows 编辑:程序博客网 时间:2024/04/19 04:38

问题的地址:

http://stackoverflow.com/questions/3044580/multiprocessing-vs-threading-python

#大多只是晓得意思,翻译起来真是感觉无力,欢迎吐槽指正。


问题:

我想知道multiprocessing比threading模块有哪些优点?

我知道multiprocessing脱离了全局解释锁,但是还有其他优点它有但是

threading无法做到的吗?


其中一个答案:

Multiprocessing(多进程)优点:*单独分配的内存空间*通常代码很简单*可以发回多CPU和多核的优点*破除了cpython中全局解释锁GIL 的约束*消除了很多原子同步操作当然除非你要用到了内存共享(它比一个IPC通信模型要多的多)*子进程时可中断/可杀死的*Python multiprocessing  模块包含了很多有用的抽象接口就像threading.Thread类似*cpython处理 CPU绑定进程必须的模块缺点:*进程间通信比较复杂,开销比较大*消耗更多的内存Threading(多线程)优点:*轻量级-内存消耗很小*内存共享 -上下文切换更容易*更容易做用户接口*cpython C 扩展模块适当的释放 GIL就能实现并行*对于IO绑定的应用来说是个很不错的选择缺点:*cpython -受制于GIL*没有中断/杀死 机制*如果不是一个命令队列或者是消息泵模型,则可能需要自己实现原子同步。*代码常常比较难懂,不容易写。 要考虑很多竞争的状况。



0 0
原创粉丝点击