Python增强提案解读
1. 垃圾回收机制相关
垃圾回收机制在Python中至关重要。当前的垃圾回收默认模式未改为支持线程处理,原因在于单线程程序的终结调用在主线程内进行,改变此行为可能导致与主线程外终结器相关的程序错误。而且,若程序使用分叉实现并发,从多线程程序进行分叉时会出现错误。
由于兼容性问题,垃圾回收需等待回收过程结束才召回主线程。虽然在单独线程进行显式回收和隐式回收有一定意义,但线程重启时并不能缓解同步问题。使用线程垃圾回收器与串行回收相比,隐式回收会有轻微延迟,不过对多数应用的内存分配影响较小。
以下是相关的伪代码示例:
# 获取当前垃圾回收模式
def gc_get_mode():
"""
Get current GC mode.
"""
return "threaded" if gc_is_threaded else "serial"
# 安排指定代的垃圾回收并等待完成
def gc_collect(generation=0):
"""
Schedule collection of the given generation and wait for it to finish.
"""
return lock_and_collect(generation)
2. PEP 554:多子解释器
PEP 554于2017年9月提出,预计包含在Python 3.8版本中。该提案旨在创建 interpreters 模块,实现同一进程内对
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



