Jython多线程

2024-05-19 01:44:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我几个月前开始研究python,然后我找到了Jython。在

线程在Jython中工作正常吗,因为它是doesn't have a GIL?如果是这样,你能推荐一本关于并发(线程)的好书吗?在


Tags: havejython线程gildoesn好书
3条回答

我遇到的关于多线程的最好的书是《Java并发实践》。它非常关注Java线程并发性,当您开始理解并发性带来的问题和可能性时,它既令人谦卑又令人兴奋。不过,几年前我买的那本书的编码中有一些错误,这加剧了一个已经具有挑战性的问题:请在这里查看勘误表:http://jcip.net/errata.html。在

任何人都希望能将并发性应用到任何一本书中(当然也包括了任何一个希望应用到Java的技术接口中的人)。在

顺便说一句,我也很喜欢Jython,并且可以确认在Java中可以做的任何并发操作都可以在Jython中实现。但是,有一个警告:并发可以用于异步编程(包括GUI)和/或性能。如果对于后者你有问题,我认为:在我的经验中,Jython比同等的Java程序慢10倍左右。在

这意味着,您要求更高的Jython模块将不得不调用Jython以外的东西来执行数字处理任务。同时,Jython到目前为止还没有Python的多处理模块,因此进程间的通信是不可能的,除非您冒险进入RMI这个可怕的领域。如果你选择的话,你比我更像个男人/女人。但一切正常:请参考http://www.jython.org上的“Jython最终指南”。。。第19章是对并发性的一种简单介绍,第10章是关于Java和Jython的集成(提示:这非常简单)。在

  • 有趣的是:快速浏览一下Jython站点可以发现,就在10天前,2012年5月17日,2.7a1版本发布了。。。“阿尔法”释放。这应该包含python2.6附带的多处理模块。有意思的是检查一下这个:如果是这样的话,它可能会给你一个令人兴奋的链接Jython和CPython进程的选项(稍后更新:很遗憾,目前看来不是这样的——当我尝试时,模块名“multiprocessing”没有被识别出来)。。。在

最后一句话:大多数对这些事情了解得比我所说的要多得多的专家认为摩尔定律正在被阿姆达尔定律所取代,简言之,这意味着编程稳定和可伸缩的真正并发程序的艰巨挑战在未来将不可避免。确切地说,使用聪明的代码分析工具,真的(即线程)并发能有多容易,我不能说,但是在这个主题上的投资以及由并发所带来的迷人的、智能的新推理规则可能会有回报。。。如果你喜欢挑战。在

最初令人困惑的方面可能是you can mix and matchJava和Jython的并发机制。但这一切似乎都奏效了。原因是:

  • Jython下面是相同的旧Java。在沉重的Jython机器下,它所有健壮的线程机制和数据结构都不会收支平衡。在
  • Jython的线程以Java线程为基础,并添加一些上层结构,使它们使用Python线程API。(没有更好的方法让移植线程化的Python代码更容易)但是这两种类型的线程的本质是相似的。除了Jython线程

    ... there are no priorities, no thread groups, and threads cannot be destroyed, stopped, suspended, resumed, or interrupted. [1]

Python习惯用法可能更方便一些,因为,例如,如果您希望执行synchronized (some_object) { ... }的等效操作,则有{a2},它可能比使用{a3}更不可读。在

是的,和Jython在一起你已经real multi-threading。Jython(JPython继任者的)是在JVM中运行的Python实现。Jython与原始项目的主要区别之一是,第一个项目没有GIL,而是在JVM实现的基础上实现了真正的多线程支持。在

我建议你看看这个book和{a3}一个。在

相关问题 更多 >

    热门问题