【 在 hgoldfish 的大作中提到: 】
: 做不到,因为所有的第三方模块都假定存在 GIL,它们自己缺少必要的加锁。
: 去掉 GIL 之后,很多第三方模块都会跑飞掉。
: Python 本身提供了好几种解决方案: multiprocessing 用于计算密集的,threading 用于 IO 密集的,以后还会提供子解释器,这个应该是最佳方案。
: ...................
>Python 本身提供了好几种解决方案: multiprocessing 用于计算密集的,threading 用于 IO 密集的,
>以后还会提供子解释器,这个应该是最佳方案。
我说的就是这这些类, 它们只是多线程的外形, 因为GIL的存在, 运行时都不可能产生真正多线程时的竞合条件。
因此, 使用这些库的各种衍生产品库, 即使有多线程误用, 在以前GIL保证的情况下,
也根本不会出BUG, 但是, 一旦把GIL锁去掉, 跑成真正多线程, 这些衍生库都需要追加额外的
多线程测试,以确保在多线程竞合条件下, 仍然是工作正常。
估计从GIL在内核支持, 到这些库都完成功能测试,bug修复,版本迭代估计要等一等了。
--
FROM 115.171.244.*