失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python同时同步发送多个请求_python如何实现“发送一个请求 等待多个响应”的同步?...

python同时同步发送多个请求_python如何实现“发送一个请求 等待多个响应”的同步?...

时间:2021-12-08 18:16:16

相关推荐

python同时同步发送多个请求_python如何实现“发送一个请求 等待多个响应”的同步?...

我正在写一些代码通过串行口与单片机通信。

MCU端基本上是一个请求/响应服务器。

一个或多个MCU发送我的请求。

然而,响应可以异步到达并且具有随机延迟,但是响应的顺序将保持不变。

另外,我的应用程序可以一次发送多个请求。在

我为每个请求创建一个线程。

只有一个公共线程用于从串行端口进行接收。在

目前的结构是这样的:

请求线程写入串行端口,将其标识添加到等待列表,然后等待事件。

接收线程接收响应,在等待列表中查找,如果匹配的请求线程正在等待,则删除等待列表条目,并设置事件。

请求线程将收到有关事件的通知并继续处理。

如果每个请求只收到一个响应,那么这种方法很有效。在

现在假设有两个响应。

在处理第一个响应之后,请求线程再次将自己添加到等待列表中,并等待另一个事件。在

通常,接收线程在接收到第二个响应时执行相同的操作来设置事件。在

但是,有时,第二个响应到达得太快,在请求线程等待第二个事件之前。在

示例代码如下。在

请求线程:send_a_request(req)

add_waitlist(req, self)

self.event = threading.Event()

if not self.event.wait(1):

remove_waitlist(req, self)

#time out processing

else:

# process 1st response

add_waitlist(req, self)

self.event = threading.Event()

if not self.event.wait(1):

remove_waitlist(req, self)

# timeout processing

else:

# process 2nd response

接收线程:

^{pr2}$

如果觉得《python同时同步发送多个请求_python如何实现“发送一个请求 等待多个响应”的同步?...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。