Python不移除Python的全局解释器锁, 也不使用多线程或多进程。所以它只允许在一个共享CPU核心上的协作式多任务而非并行,最初不能获得而现在有了某种形式的抢占。 由于相当数量的源代码变更,Stackless Python不能。
ˋ▂ˊ
在多处理器的计算机上使用CPython的主要问题来自CPython的全局解释器锁(Global Interpreter Lock,GIL),它使得CPython不能进行并发编程。要做到并发编程,就必须为每一个线程运行一个解释器。如果这样的话,它们之间的通讯就非常困难。所以社区内一直在讨论是否要从CPython中去除GIL。。
zai duo chu li qi de ji suan ji shang shi yong C P y t h o n de zhu yao wen ti lai zi C P y t h o n de quan ju jie shi qi suo ( G l o b a l I n t e r p r e t e r L o c k , G I L ) , ta shi de C P y t h o n bu neng jin xing bing fa bian cheng 。 yao zuo dao bing fa bian cheng , jiu bi xu wei mei yi ge xian cheng yun xing yi ge jie shi qi 。 ru guo zhe yang de hua , ta men zhi jian de tong xun jiu fei chang kun nan 。 suo yi she qu nei yi zhi zai tao lun shi fou yao cong C P y t h o n zhong qu chu G I L 。 。
语句不能成为表达式的一部份,由于列表和其他推导式或lambda表达式,都是表达式,也就不能包含语句。这个限制的一个示例:赋值语句比如a = 1,不能用作条件语句的条件判断表达式的一部份;这能够避免C语言编程中的一个常见错误,即在条件判断时把等于算符==误写为赋值算符=,这不是预期代码却在语法上有效而能。
n是用Python解释器转译的。代码还可以不转换的运行来测试和分析,这为动态语言研究提供了很好的试验台。 它允许可插拔的垃圾回收,还有可选的启用Stackless Python特征。最后,它包括了即时编译(JIT)生成器,在解释器源代码中加入一些标注,就能在解释器中建造入即时编译器。生成的JIT编译器是跟踪JIT(英语:tracing。
发表评论