问题标签 [python-stackless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 处理大量线程?
这将创建大约 100000 个线程,但我最多可以创建 32 个线程吗?这段代码可以做哪些修改?
python - Python 是否可以重新创建整个调用堆栈?
我有兴趣尝试使用 python。frame.f_locals
我知道我可以使用and检查并注入局部和全局变量到一个框架中frame.f_globals
,但我现在渴望创建一个完整的调用堆栈。
使我无法更改堆栈信息的原因是 python 不允许我更改它。
我实际上已经考虑过以编程方式转换我正在使用的 python 模块,以模拟缠绕堆栈。但我知道这是一个糟糕的解决方案,因为客户端代码使用if
, while
,with
并且try
很容易破坏我的代码。
我也看过 manipulating frame.f_back
,但无济于事。它是只读的。
我正在尝试做的事情
作为一项实验,我正在尝试fork()
通过网络实现。
我知道无堆栈 python 可能有我想要的,但仍然无法更改frame.f_back
属性。
python - 使用 Stackless Python 保存大型运行程序的状态?
给定一个大型(4.5 GB 代码库)python 测试框架,其执行涉及数十个文件,其中许多文件不能直接腌制,是否可以将程序的初始执行包装在一行函数中,创建一个 Stackless tasklet那个函数,并且在执行过程中,pickle tasklet 作为保存整个程序状态的一种方式?Stackless 的 tasklet 酸洗能力有什么限制?
python-3.x - 实现无堆栈 Python
我真的很佩服 Stackless Python 的功能,我一直在寻找一种方法来模拟它的语法,同时仍然使用标准的 Python 3 解释器。Alex J. Champandard 在 gamedev 博客中的一篇文章使 greenlet 库看起来可以提供此功能。我稍微修改了他的代码,但我能想到的最好的临时 tasklet 包装器是一个在变量中包含一个 greenlet 的类,如下所示:
switch()
然后,该函数通过在调用其方法时将变量传递给 greenlet 来模拟 Stackless 的调度。
到目前为止,这似乎可行,但我希望能够以原始的 Stackless 语法调用 tasklet,例如tasklet(function)(*args)
,与当前的语法相反tasklet(function,*args)
。我不确定在哪里查看文档以了解如何完成此操作。这是否可能,或者它是 Stackless 对解释器的更改的一部分?
python - 如何将参数作为附加参数传递给 python greenlet
我正在寻找一种通过另一个函数传递函数参数的方法,其方式与 Stackless 的tasklet
实例化相同:
到目前为止,我想出的最好方法是:
这有效,但与 Stackless 的语法不同。我不确定在哪里查看文档以了解如何完成此操作(因此这个问题的标题相当模糊)。这是否可能,或者它是 Stackless 对解释器的更改的一部分?
编辑:我现在知道有一种方法适用于函数,但我不确定它是否适用于我的情况。我正在使用greenlet库:greenlet线程在编辑greenlet时获取args switch()
,而不是在实例化时。如下所示调用它们会导致
TypeError: 'greenlet.greenlet' object is not callable
.
使用greenlet.greenlet(function(args))
(仍然不是正确的语法)会立即执行,并且仍然需要switch()
方法中的 args。因此,我目前使用上面显示的语法将变量存储在类中,以便在调用switch()
. 希望这不会改变太多的问题!
根据要求,这是有问题的代码。首先,eri 的答案的一个变体(免责声明:我以前从未使用过装饰器):
原始代码(工作但在语法上不理想):
python-2.7 - Install Stackless without uninstalling Python
It seems like on Windows I have to uninstall Python before installing stackless (http://stackless.com/wiki/Download). I have Python 2.7 installed, a solution may be installing Stackless Python 3.2, but I will have to switch between Python 2 and 3 syntax. Is there anyway to install Stackless without uninstalling Python? Otherwise I'll loose all Python modules I've installed and the CPython interpreter.
python - PyCharm 无法解决 stackless
我在 OS X 上使用 PyCharm 3。我在虚拟环境中配置了一个 Python Stackless 二进制文件以用作项目解释器。它运行正常,并且导入stackless
了模块,但在编辑器中它显示有红色下划线,并且 PyCharm 说它无法解析导入。
如何修复?我应该对内置配置做些什么吗?
python - 无堆栈python构造函数
我正在使用stackless python
,此代码生成以下错误:
这很奇怪,因为我没有调用stackless.tasklet
.
任何人都知道错误到底是什么。
python - Python tasklet 不是打破了“没有 GOTO”的规则吗?
我对 Stackless Python 的 tasklet 进行了大量的谷歌研究。每个来源都提到它作为一个线程
但是tasklet不是并发的。他们逐部分执行代码。
像这样的代码:
将打印
tasklet 执行代码,直到遇到 stackless.schedule() 然后它从开始或从上次暂停的地方执行下一个 tasklet。
每个程序员都知道“无 GOTO”的黄金法则。我的问题是:
这和 GOTO 有什么不同?
如果不并行执行,使用 tasklet 有什么好处?
如果它们不是真正的线程,为什么每个消息来源都提到它们作为线程替代品?
heroku - 如何在heroku上使用stackless python?
我正在尝试将无堆栈 python 用于 heroku 应用程序,但它们不支持运行时:
这是令人惊讶的,因为 stackless-3.3.5 最近被添加到 heroku buildpack 上可用的“非官方”版本列表中。