Nav*_*ava 7 python java multithreading multiprocessing gil
由于Python在GIL方面存在一些问题,因此Java更适合开发多处理应用程序.你能否以自己的方式证明java的有效处理的确切推理?
Joa*_*uer 17
在CPython的多线程,最大的问题是全局解释器锁(GIL) (注意:其他Python实现并不一定分享这个问题!)
GIL是一个实现细节,可以有效地防止在Python中并行(同时)执行单独的线程.问题是每当要执行Python字节代码时,当前线程必须已经获得了GIL,并且在任何给定时刻只有一个线程可以拥有GIL.
因此,如果5个线程试图执行某些Python字节代码,那么它们将有效地运行交错,因为每个线程都必须等待GIL可用.这通常不是单核计算机的问题,因为物理约束具有相同的效果:一次只能运行一个线程.
然而,在多核/ SMP计算机中,这成为瓶颈(并且每分钟变得越来越普遍).
Java没有这样的限制,因此多个线程可以在同一时间执行.