gpt4 book ai didi

java - 为什么 Python 在多处理或多线程应用程序中并不比 Java 更好?

转载 作者:太空狗 更新时间:2023-10-29 21:17:50 25 4
gpt4 key购买 nike

由于 Python 在 GIL 方面存在一些问题,因此 Java 更适合开发多处理应用程序。您能否以您的方式证明 java 比 python 有效处理的确切原因?

最佳答案

CPython 中多线程的最大问题是 Global Interpreter Lock (GIL) (请注意,其他 Python 实现不一定一定会遇到这个问题!)

GIL 是一个实现细节,可有效防止 Python 中并行(同时)执行单独的线程。问题在于,每当要执行 Python 字节代码时,当前线程必须已经获得 GIL,并且在任何给定时刻只有一个线程可以拥有 GIL。

因此,如果 5 个线程试图执行一些 Python 字节代码,那么它们将有效地交错运行,因为每个线程都必须等待 GIL 可用。这通常不是单核计算机的问题,因为物理约束具有相同的效果:一次只能运行一个线程。

然而,在多核/SMP 计算机中,这成为瓶颈。如今,几乎所有东西都在多核上运行,实际上包括所有智能手机甚至许多嵌入式系统。

Java 没有这样的限制,所以多个线程可以同时执行。

关于java - 为什么 Python 在多处理或多线程应用程序中并不比 Java 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com