Python中文
首页
教程
问答
标签
搜索
登录
注册
从操作系统的角度理解python的twisted异步性
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我是twisted库的新手,我试图理解python/twisted中的操作是如何异步执行的。到目前为止,我认为只有类似GUI(Qt或javascript)的平台才广泛使用事件驱动架构。在</p> <p>事实:</p> <ul> <li>Twisted程序在一个线程中运行=没有多线程</li> <li>使用reactor和deferred模式:声明回调/errback,所有操作都由reactor主循环控制</li> <li>一个CPU永远不能真正并行地做任何事情,因为它在进程之间共享它的资源等等。通过并行代码执行,我的意思是编程平台(python、javascript等)执行多个操作序列(例如,可以使用多线程处理来完成)</li> </ul> <p>问题1</p> <p>Python可以看作是操作系统的高级包装器。提供异步操作处理的操作系统函数(或C函数)是什么?有吗?在</p> <p>问题2</p> <p>Q1让我想到了一个想法,twisted的异步性并不是真正的异步性,就像我们在Javascript中所做的那样。例如,在JavaScript中,如果我们提供3个不同的按钮,将回调函数附加到它们上,然后我们单击所有三个按钮,那么这3个回调将并行执行。完全平行。在</p> <p>在Twisted中,据我所知,它不是真正的异步,它是,比方说,<em>近似于异步性</em>,因为没有操作可以并行执行(就代码而言,正如我在fact3中提到的那样)。在Twisted中,第一个n行代码(定义协议、工厂、连接等)是整个系统启动时将发生什么的声明。到目前为止没有什么进展。实际执行开始后,<code>reactor.run()</code>被触发。我知道reactor运行时基于一个遍历事件的<code>while True</code>循环。reactor检查所有等待执行的任务,对其进行处理,将结果发送回队列(回调或errback)。在下一个循环执行中,它们将被进一步处理。所以延迟执行实际上是线性的(不过,从外部看,它看起来是并行执行的)。我的解释正确吗?在</p> <p>如果有人能回答我的问题和/或解释异步在twisted/python平台中是如何工作的,以及它与操作系统的关系如何,我将不胜感激。提前感谢你的解释!在</p> <p><em>编辑:非常欢迎指向解释异步性的文章的链接!</em></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我在2012年的PyCon大会上就这个问题做了半小时的演讲。<a href="http://pyvideo.org/video/885/through-the-ether-and-back-again-what-happens-to" rel="nofollow">You can watch it online here.</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
2 回答
将Pandas数据帧转换为scipy稀疏矩阵
7 回答
将Pandas数据帧转换为Spark Datafram时出现问题
3 回答
将pandas数据帧转换为spark DataFram时出错
9 回答
将Pandas数据帧转换为spark datafram时收到错误
6 回答
将Pandas数据帧转换为Spark数据帧
10 回答
将Pandas数据帧转换为Tensorflow数据
7 回答
将Pandas数据帧转换为tkinter obj
6 回答
将pandas数据帧转换为XML
10 回答
将Pandas数据帧转换为值sql语句
8 回答
将pandas数据帧转换为元组
3 回答
将pandas数据帧转换为元组列表
7 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
4 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
3 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
10 回答
将pandas数据帧转换为内存中类似文件的对象?
10 回答
将Pandas数据帧转换为内存功能(&F)
4 回答
将pandas数据帧转换为列表列表
10 回答
将pandas数据帧转换为列表列表以输入到RNN
8 回答
将Pandas数据帧转换为单行DataFram
2 回答