duc*_*cin 6 python asynchronous twisted
我是扭曲的库的新手,我试图理解如何完成python/twisted中的操作是异步执行的.到目前为止,我认为只有GUI相似(Qt或javascript)平台广泛使用事件驱动架构.
事实:
问题1
Python可以被视为操作系统的高级包装器.提供异步操作处理的OS功能(或C功能)是什么?有吗?
问题2
Q1引出了一个想法,扭曲的异步性不是真正的异步性,就像我们在Javascript中所做的那样.例如,在JavaScript中,如果我们提供3个不同的按钮,将回调函数附加到它们,我们单击所有三个按钮 - 然后将并行执行3个回调.真正平行.
在扭曲的-据我了解-这不是真的不同步性-它,让我们说,近似异步相反,因为没有操作都将并行执行(在代码方面,正如我在fact3提到).在Twisted中,前n行代码(定义协议,工厂,连接等)是整个系统启动时将要发生的事情的声明.到目前为止还没有运行.真正的执行开始然后reactor.run()被触发.我知道reactor运行时基于单个while True循环遍历事件的循环.reactor会检查所有等待执行的任务,处理它们,将结果发送回队列(回调或错误).在下一个循环执行中,它们将进一步处理.因此,延迟执行实际上是线性的(尽管从外部看起来它看起来像并行执行).我的解释是否正确?
如果有人能够回答我的问题和/或解释在扭曲/ python平台中异步性如何工作以及它与操作系统有什么关系,我将不胜感激.在此先感谢您的好解释!
编辑:非常欢迎链接到解释异步性的文章!
如果不更准确地定义很多术语并对你的事实提出异议,就很难谈论这个问题,但这是我的尝试:
问题1:
尝试man select,这大约是Twisted的实现方式 - 这是一种要求操作系统同时监视多个事物的方法,让应用程序知道它们中的任何一个触发(阻止多个事物).
问题2:
是的,差不多 - 但你对Javascript的看法不对,就像Twisted一样.
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |