Python 有可能删除 GIL 吗?
要回答这个问题,先从 GIL 的起源进行分析。当时 CPU 都是单核,而且这种 GIL 设计简单,并不会影响性能,因此一直沿用至今天。GIL 存在最主要的原因,就是因为 Python 的内存管理不是线程安全的,这就是 GIL 产生并存在的主要缘由。尝试消除 GILCPU 进入多核时代后,可以同时做多个计算任务, GIL 才真正变成问题。也就是说除去了 GIL 后,你使用 2 个 CPU 才能获取比原来 1 个 CPU 稍微好一点的性能,这种提升明显得不偿失,Greg Stein 的尝试也就失败告终。Python 之父 Guido van Rossum 也欢迎社区的志愿者去尝试去除 GIL,只要不降低单线程的性能,但他也提到,去掉 GIL 不是一件容易的事。Python 开发者邮件列表中也偶尔会有去除 GIL 的议题,但是以下需求必须满足:
用户评论