Python部落组织翻译,禁止转载,欢迎转发
IPython代码库的工作似乎很非常活跃,项目已经足够大,以至于可以被分割成几个独立的项目。它支持Ruby和Perl以及其他脚本语言。也同时支持Python 2和Python 3。
对于进程间的通信(发送信息),ZeroMQ提供了很好的处理功率。或者,你可以认为它提供了低级别的管道,使你能够编写进程间通信和数据传输的逻辑。你需要注意启动进程。而且,你需要停止它们,虽然很容易想象利用ZeroMQ向一个进程发送消息要求它退出。
使用ZeroMQ的一个最大的优势是,它有多种编程语言的绑定,所以,你可以利用进程编写大的应用程序,每个进程用不同的语言进行实现,例如,Python, Ruby, Java/Node.js等等。上面的例子中,有一个用Node.js编写的”main”或者客户端进程,从一个用Python实现的工作进程中请求服务。它能够使我们有效但不太方便的从Node.js中请求Lxml的能力,虽然Lxml对Python可用而对Node.js不可用。我们可以想象一些类似的NumPy、SciPy的使用,都可用于Python。
Erlang,Erlport进程池等,--虽然为了使用IPython有很多要学习,Erlang(非Erlang程序员)意味着学习使用一个新的、不同的语言,如果你打算使用Erlang的一些优势,你必须学习大量的Erlang基础知识。这里有一些建议:(1)Erlang必须安装在每台使用它的机器上。(2)你(或某人)需要学习Erlang,并且要编写代码来控制进行并行和分布式工作的Python进程。Erlport有帮助,但学习Erlang的负担仍然存在。我的示例代码(以上)可以帮助你开始,但对于任何重要使用,在你的团队中,你需要一位有经验的Erlang程序员。
Erlang上运行Elixir,至少有些人会觉得像一个友好的语言风格。还有,对于某些人来说,这意味着学习一种新语言,并且,在你的所有目标机器上安装Erlang和Elixir。我还没有尝试过将erlport和Elixir结合起来使用。
英文原文:https://www.davekuhlman.org/python_multiprocessing_01.html
译者:血杀令
我来说两句排行榜