Python中文
首页
教程
问答
标签
搜索
登录
注册
异步:同步的事件与未来
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在浏览一些<code>asyncio</code>网络和实现的源代码,这在我的脑海中提出了一个问题。在</p> <p>为了在等待数据从套接字到达时创建非阻塞I/O,其末尾的<code>asyncio.StreamReader.read()</code>调用<code>_wait_for_data</code>方法,该方法<a href="https://github.com/python/cpython/blob/3.6/Lib/asyncio/streams.py#L462-L464" rel="nofollow noreferrer">creates an empty ^{<cd4>}</a>并等待它。在</p> <p>在<a href="https://github.com/python/cpython/blob/3.6/Lib/asyncio/streams.py#L399" rel="nofollow noreferrer">^{<cd5>}</a>方法中,当新数据到达流(^{cd6>}方法)时,该方法被称为<em>,该方法称为<em>。在</p> <p>这完全有道理。在</p> <p><strong>我的问题是:</strong></p> <p><strong>为什么不使用<a href="https://docs.python.org/3/library/asyncio-sync.html#asyncio.Event" rel="nofollow noreferrer">^{<cd7>}</a>?</strong>在我看来,活动就是为了这些目的而设计的。实际上,您不必为每个<code>_wait_for_data</code>调用创建一个新的Future,而是初始化一个类中的单个事件,并在其生存期内简单地切换其值。它还具有特定的<code>.wait()</code>方法,用于等待其值变为真(当新数据从套接字到达时)。在</p> <p>有人能详细说明这两种方法之间是否有实际的区别吗?或者只是一种随意选择的方法?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>未来是低级原始的。 它功能强大,但用户代码通常不需要它。 就像Linux有futex,但是用户代码使用高级对象,比如锁和递归锁。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
2 回答
如何在python中从数据帧列表中删除引号
8 回答
如何在python中从数据帧创建列表
3 回答
如何在Python中从数据帧创建嵌套的JSON
4 回答
如何在Python中从数据帧显示wordcloud
1 回答
如何在Python中从数据帧的时间戳中删除字符
4 回答
如何在Python中从数据帧绘制简单绘图?
5 回答
如何在python中从数据帧行提取具有特定长度的范围?
2 回答
如何在python中从数据帧设置dict中的值
9 回答
如何在Python中从数据库中获得一个结果
9 回答
如何在python中从数据框中绘制分类条形图
7 回答
如何在Python中从数据框中选择特定细节?
9 回答
如何在python中从数据集中删除unicode
6 回答
如何在python中从数据集中删除某些数值?
5 回答
如何在python中从数据集中选择行
10 回答
如何在Python中从数组中删除元素
8 回答
如何在python中从数组中删除单个倒逗号?
10 回答
如何在python中从数组中删除对象?
7 回答
如何在python中从数组中删除引号
4 回答
如何在python中从数组中删除所有最小值
4 回答