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(提示:这很荒唐)。
PS最后一句话:大多数对这些事情了解更多的专家比我认为摩尔定律在Amdahl法则的重要性方面已经被取代,这简言之,编程稳定和可扩展的真正并发程序的艰巨挑战将是不可避免的未来。 使用聪明的代码分析工具可以实现真正的(即线程)并发性是多么容易我不能说,而是在这个主题上的投资以及并发性引发的引人入胜的智能新规则可能会得到回报... if你喜欢挑战。
是的,通过Jython,你可以实现真正的多线程。 Jython(JPython继承者)是一个在JVM中运行的Python实现。 Jython和原始项目之间的主要区别之一是,第一个没有GIL,并且基于JVM的实现实现了真正的多线程支持。
我建议你看看这本书和OReilly的书。
最初令人困惑的方面可能是您可以混合使用Java和Jython的并发机制。 但这一切似乎都奏效。 原因是:
......没有优先级,没有线程组,线程不能被销毁,停止,暂停,恢复或中断。 [1]
Python成语可能更方便一些,例如,如果您希望做synchronized (some_object) { ... }
的等效操作,则需要一些小小的摆弄,这可能会比可读性差使用RLock。
下一篇: Python real time image classification problems with Neural Networks