问题标签 [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.

0 投票
2 回答
426 浏览

python - INFORMATION_SCHEMA 的 MySQL 驱动程序问题?

我正在尝试 Stackless Python 的并发框架。它包括一个 MySQL 驱动程序,当运行一些以前在 MySQLdb 上运行良好的代码时,它会失败。

我在做什么:

  1. 使用带有用户名/密码/端口/数据库的 dbapi 连接到 MySQL 数据库。

  2. 执行SELECT * FROM INFORMATION_SCHEMA.COLUMNS

这失败并显示消息:

“mydatabase”是我在步骤 1 中指定的数据库。

在发出“USE mydatabase”后在 MySQL 控制台中执行相同的查询时,它可以完美运行。

检查网络通信会产生如下内容:

这是驱动程序问题(因为它在 MySQLdb 中有效)?还是我不应该以这种方式查询 INFORMATION_SCHEMA ?

如果我在尝试查询之前发送特定的“USE INFORMATION_SCHEMA”,我会得到预期的结果。但是,我不想让我的代码到处都是“USE”查询。

0 投票
2 回答
1652 浏览

python - 无堆栈python如何快速并发?

无堆栈 python 没有很好地使用多核,那么它​​应该比 python 线程/多处理更快的点在哪里?

所有的 benchmark 都使用 stackless python tasklet 与 python 线程锁和队列进行比较,这是不公平的,因为锁总是效率低下

看,如果使用不带锁的单线程函数调用,它应该和无堆栈 python 一样高效

0 投票
11 回答
16368 浏览

java - Python vs. Java——你会选择哪一个来做并发编程,为什么?

另外,如果不是 python 或 java,那么您更一般会选择静态类型语言还是动态类型语言?

0 投票
1 回答
354 浏览

django - mod_python 没有加载无堆栈 Python

我已经用无堆栈 Python 设置了一个 Apache2 mod_python 环境,它正在工作。当我用 测试 Python 环境时sys.version,它显示

在浏览器中。

但是当我这样做时,import stackless它显示:

我也无法加载 MySQLdb、nltk 等。所有这些模块都可以在命令行中加载。所以我的猜测是 mod_python 指的是旧的 Python 安装。

可能是什么问题?


我已经针对无堆栈安装了所有东西。如您所见,我的回答sys.version

这是代码的响应:

但是当我添加import stackless如下时,​​它会引发上述错误:

有什么我想念的吗?

0 投票
2 回答
2381 浏览

erlang - 哪些编程语言支持热代码交换和/或沙盒?

我想编写一个基于网络的 MMO 游戏,允许用户编写 AI 并将其作为游戏的一部分运行。我计划将 Html5 用于图形,并希望它基于网络,以便可以从智能手机访问。我需要找到一种支持沙盒、并发、热代码交换和大型库的编程语言,以使事情变得更容易。

目前我的研究对象是 Erlang、Stackless Python 和 Lua。任何帮助表示赞赏。

0 投票
6 回答
11439 浏览

python - 我会用 Stackless Python 做什么?

有很多与 Stackless Python 相关的问题。但是没有人回答我的问题,我想(如果错了请纠正我 - 请!)。一直有一些关于它的嗡嗡声,所以我很想知道。我会用 Stackless 做什么?它比 CPython 好在哪里?

是的,它有绿色线程(无堆栈),只要没有操作阻塞(类似于 Ruby 的线程?),就可以快速创建许多轻量级线程。这有什么好处?我想通过 CPython 使用它还有哪些其他功能?

0 投票
2 回答
1140 浏览

python - 阻塞通道与异步消息传递

我注意到两种“消息传递”的方法。一种我见过 Erlang 的使用,另一种来自 Stackless Python。据我了解,这就是区别

Erlang Style - 消息被发送并排队到接收进程的邮箱中。从那里他们以先进先出的方式被移除。一旦第一个进程发送消息,它就可以自由地继续。

Python 风格 - 进程 A 排队等待发送到进程 B。B 当前正在执行一些其他操作,因此 A 被冻结,直到 B 准备好接收。一旦 B 打开读取通道,A 发送数据,然后它们都继续。

现在我看到 Erlang 方法的优点是你没有任何阻塞的进程。如果 B 永远无法接收,A 仍然可以继续。但是我注意到在我编写的一些程序中,Erlang 消息框可能会充满数百(或数千)条消息,因为消息的流入量大于流出量。

现在我还没有用任何一种框架/语言编写过大型程序,所以我想知道你的经验是否与此有关,如果这是我什至应该担心的事情。

是的,我知道这是抽象的,但我也在寻找相当抽象的答案。

0 投票
3 回答
1024 浏览

python - 在 Python 中进行多线程/并发编程有哪些选择?

我正在编写一个简单的站点爬虫,我决定借此机会学习 Python 并发编程方面的新知识。我决定尝试其他方法,而不是使用线程和队列,但我不知道什么适合我。

我听说过 Stackless、Celery、Twisted、Tornado 和其他东西。我不想设置数据库和 Celery 的所有其他依赖项,但如果它适合我​​的目的,我会这样做。

我的问题是:我的应用程序的适用性和总体实用性之间的良好平衡是什么?我已经查看了 Stackless 中的 tasklet,但我不确定 urlopen() 调用是否会阻塞或者它们是否会并行执行,我在任何地方都没有看到过。

有人可以给我一些关于我的选择的详细信息以及最好使用什么吗?

谢谢。

0 投票
2 回答
1509 浏览

python - Stackless Python 3.1 的基本异步(非阻塞)HTTP 客户端是否有现成的解决方案?

更新:在使用 Py3 进行了大量工作之后,包括编写我自己的异步 Web 服务器(在 Dave Beazley 的演示之后),我终于抛弃了 Python(以及我的一大堆代码)-:转而支持在NodeJS上运行的CoffeeScript。看看:GitHub(现在你可以在其中找到 95% 的有趣代码)、npm(对用户不友好的包管理器;很好摆脱,你从来没有辜负你的名字),一个疯狂的巨大的模块存储库(几乎 24/7 发布大量新内容),一个庞大而充满活力的社区,开箱即用的异步 HTTP 和文件处理......,所有这些(感谢V8占三分之一光速easy_install——有什么不喜欢的?阅读更多宣传:“脚本的未来”(幻灯片托管由SpreeWebdesign提供)。

我正在寻找一种以异步、非阻塞方式提供 HTTP(并执行 HTTP 请求)的方法。当您像我一样决定使用Stackless Python 3.1(另请参阅此处的文档)时,这似乎很难做到。

有一些基本示例,例如信息量很大且详细的文章How To Use Linux epoll with Python,还有一个名为stacklessexamples的 Google 代码项目,其中包含一些有价值的信息(但没有与 Python 3.x 兼容的代码)。

因此,经过多天的网络研究并尝试将我迄今为止发现的部分组合在一起:有人知道一个相当可用的异步 HTTP 库吗?它不必符合 WSGI(我对此不感兴趣)。

服务器部分应该能够服务多个非阻塞 HTTP 请求(并且可能进行 HTTP 标头处理的基础知识);HTTP 客户端部分应该能够以非阻塞方式通过 HTTP 请求检索 Web 内容(也进行基本的标头处理,但没有像授权这样的花哨的东西)。

到目前为止,我的研究表明,非阻塞 HTTP

  1. 是在无堆栈、协作调度的环境中唯一有意义的方法;

  2. 凭借标准库在 Stackless Python 3 中是可行的select epoll(在 Py2.6 中引入;一些解决方案更喜欢libevent,但这意味着另一个障碍,因为pyevent 项目似乎已经停止在 Py2.5 开发);

  3. 遗憾的是,它仍然不是家庭用品,大多数人都依赖于阻止 HTTP。

现在的样子,我必须学习套接字编程的基础知识并推出我自己的 HTTP 服务器/客户端库。我仍然回避这项任务,因为我在该领域的背景很少,并且注定要以这种方式“重复历史”。

我会很高兴任何相关的指针。我非常喜欢使用select.epoll; 我似乎记得它比旧的更具可扩展性asyncore(但也许有人对此有更精确的数据)。作为最低要求,解决方案应在 Ubuntu 9.10 上运行。

0 投票
1 回答
192 浏览

python - 使用无堆栈 python 的困难,无法写入字典

我有简单的 map-reduce 类型算法,我想在 python 中实现并利用多个核心。

我在某处读到,在 2.6 中使用本机线程模块的线程不使用多个内核。真的吗?

我什至使用 stackless python 实现了它,但是我遇到了奇怪的错误 [更新:快速搜索表明 stackless 不允许多个内核那么他们还有其他选择吗?

但是在上面的代码中,分配给标签的值,即字典中的更改丢失了。

上述传播函数用作 MicroThreads(即 TaskLets)的可调用函数