GIL 的问题是由于当时采用引用计数这样的垃圾回收技术引出的。毕竟要保护好引用数正确,要不就是处处是小锁。要不就是一个大锁(GIL)。当时为了单线程的性能,就用了一个大锁( GIL )。
后面技术发展,大家发现其实 tracing-base 的垃圾回收方案速度也不慢,同时各种优点。于是现代化的 VM 都是 tracing gc 了。
要去掉 GIL,那是得大改啊。
GIL 的问题是由于当时采用引用计数这样的垃圾回收技术引出的。毕竟要保护好引用数正确,要不就是处处是小锁。要不就是一个大锁(GIL)。当时为了单线程的性能,就用了一个大锁( GIL )。
后面技术发展,大家发现其实 tracing-base 的垃圾回收方案速度也不慢,同时各种优点。于是现代化的 VM 都是 tracing gc 了。
要去掉 GIL,那是得大改啊。
问 Python 的 gil 到底解决了什么具体的问题?