jython多线程

几个月前我开始学习python,然后发现了Jython。

在Jython中线程是否正常工作,因为它没有GIL? 如果是这样,你能提出一本关于并发(线程)的好书吗?


我在多线程上遇到的最好的书是“Java并发实践”。 它非常专注于Java线程并发性,当您开始了解并发性引入的问题和可能性时,它既令人振奋又令人兴奋。 几年前我购买的版本在编码方面有一些错误,但这加剧了一个已经具有挑战性的主题:请在这里查看错误:http://jcip.net/errata.html。

尽管为希望冒险进入并发性的Java开发人员设计(其中包括任何曾经使用过任何类型GUI界面的人),但我确信本书中概述的技术难点和细节适用于任何并发实现。

顺便说一下,我也很喜欢Jython,并且可以确认任何并发性,你可以在Java中做什么,你可以在Jython中做。 但是,有一点需要注意:并发性可以用于异步编程(包括GUI)和/或性能。 如果对后者有问题,我认为:根据我的经验,Jython的运行速度比同等Java程序慢10倍。

这意味着要求更高的Jython模块必须调用除Jython以外的其他功能,才能完成数字处理任务。 与此同时,Jython到目前为止*还没有Python的多处理模块,所以进程间通信已经完成,除非你冒险进入RMI的可怕领域。 如果你选择这个选择,你比我更像一个男人/女人。 但一切正常:请参阅http://www.jython.org上的“Jython权威指南”......第19章是一种对并发性的哨声介绍,第10章介绍如何集成Java和Jython(提示:这很荒唐)。

  • 有趣的是:在Jython站点的快速浏览显示,仅在10天前,17/05/12,版本2.7a1被发布......“Alpha”版本。 这应该包含Python 2.6中的多处理模块。 Wd有趣地检查一下:如果是这样的话,它可能会给你一个令人兴奋的选项来链接Jython和CPython进程(稍后更新:可悲的是,现在看起来并非如此 - 模块名称“multiprocessing”在我尝试时未被识别)...
  • PS最后一句话:大多数对这些事情了解更多的专家比我认为摩尔定律在Amdahl法则的重要性方面已经被取代,这简言之,编程稳定和可扩展的真正并发程序的艰巨挑战将是不可避免的未来。 使用聪明的代码分析工具可以实现真正的(即线程)并发性是多么容易我不能说,而是在这个主题上的投资以及并发性引发的引人入胜的智能新规则可能会得到回报... if你喜欢挑战。


    是的,通过Jython,你可以实现真正的多线程。 Jython(JPython继承者)是一个在JVM中运行的Python实现。 Jython和原始项目之间的主要区别之一是,第一个没有GIL,并且基于JVM的实现实现了真正的多线程支持。

    我建议你看看这本书和OReilly的书。


    最初令人困惑的方面可能是您可以混合使用Java和Jython的并发机制。 但这一切似乎都奏效。 原因是:

  • Jython下面是同样的老Java。 它的所有强大的线程机制和数据结构在Jython繁重的机器下都不会失效。
  • Jython的线程将Java线程作为他们的机箱,并添加了一些超结构,使他们说出Python线程API。 (没有更好的方法来简化移植线程化Python代码。)但是这两种类型的线程的本质是相似的。 除了使用Jython线程

    ......没有优先级,没有线程组,线程不能被销毁,停止,暂停,恢复或中断。 [1]

  • Python成语可能更方便一些,例如,如果您希望做synchronized (some_object) { ... }的等效操作,则需要一些小小的摆弄,这可能会比可读性差使用RLock。

    链接地址: http://www.djcxy.com/p/55209.html

    上一篇: jython multithreading

    下一篇: Python real time image classification problems with Neural Networks