CPython
采用 GIL
来防止互斥等问题。然而,这样做的后果是解释器无法利用多核CPU。我也了解到,Jython
不需要GIL,因为其实现已经是线程安全的。
这是否意味着,当涉及到并发编程和利用多核CPU时,Jython是一种更优秀的实现方式?
CPython
采用 GIL
来防止互斥等问题。然而,这样做的后果是解释器无法利用多核CPU。我也了解到,Jython
不需要GIL,因为其实现已经是线程安全的。
这是否意味着,当涉及到并发编程和利用多核CPU时,Jython是一种更优秀的实现方式?
是的,Jython使用Java线程(即使您使用Python的线程模块),因此它没有GIL。但这不是答案(否则答案应该是42,因为问题不清楚:^))。 更好的问题是,您有哪些标准,以及CPython或Jython哪个更好。
如果您想要真正的多线程,那就是您的事情。 如果您想使用Java和Python,请使用它。 如果您想要快速执行时间....那么其他语言可能会更好(您可以尝试在Python中的线程任务中测量时间,并在Jython中尝试相同的代码,但我猜即使有GIL,CPython也会更快)。
问候, Zonk