当前位置:  开发笔记 > 编程语言 > 正文

Stackless python和multicores?

如何解决《Stacklesspython和multicores?》经验,为你挑选了1个好方法。

所以,我正在玩Stackless Python并且脑子里出现了一个问题,也许这是"假设的"或"常见的"知识,但我发现它实际上写在无堆栈网站上的任何地方.

Stackless Python是否利用多核CPU?在普通的Python中,你有GIL不断出现并且(使用多个核心)需要使用多个进程,这对Stackless来说也是如此吗?



1> sven..:

Stackless的Python做使用任何类型的多核环境下的运行上.
这是对Stackless的一种常见误解,因为它允许程序员利用基于线程的编程.对于许多人来说,这两者密切相关,但实际上是两件事.

Stackless内部使用循环调度程序来调度每个tasklet(微线程),但是没有tasklet可以与另一个同时运行.这意味着如果一个tasklet忙,其他的必须等到该tasklet放弃控制.默认情况下,调度程序不会停止任务并为另一个提供处理器时间.使用Stackless.schedule()或完成计算后,tasklet有责任将自己安排在调度队列的末尾.

因此,即使多列核心可用,所有的tasklet也以顺序方式执行.

Stackless之所以没有多核支持,是因为这样可以让线程变得更容易.这就是无堆栈的全部意义:

来自官方无网站

Stackless Python是Python编程语言的增强版本.它允许程序员从基于线程的编程中获益,而不会出现与传统线程相关的性能和复杂性问题.Stackless添加到Python的微线程是一种便宜且轻便的便利,如果使用得当,可以带来以下好处:

改进了计划结构.

更易读的代码.

提高程序员的工作效率.

以下是有关多核和无堆栈的更多信息的链接.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有