gpt4 book ai didi

python - 与 C 相比,此异步代码将如何在 Python 中执行?

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:36 25 4
gpt4 key购买 nike

假设我有一个简单的脚本,下面有两个函数。当调用 callback_func 时,我会假设它只会在单一基础上运行。也就是说,不会有两个事件同时通过代码块。那是对的吗?此外,如果 callback_func 在单一基础上运行,则消息传递服务本身将必须执行一些缓冲,以免消息丢失,并且该缓冲取决于发起事件的服务。这也是正确的吗?

def callback_func(event):
# Can be called anytime

def main_func():
# Sets up a connection to a messaging service

那如果我加一个send_func呢?如果我收到一条消息,但我有 3 条消息出去,send_func 将如何处理在发送消息时被调用的情况? Python解释器会处理这种情况吗?

def send_func(event):
# Can be called anytime

def callback_func(event):
# Can be called anytime

def main_func():
# Sets up a connection to a messaging service

最后,如果我将语言更改为 C,我上述问题的答案将如何改变?

最佳答案

混淆两个概念(异步!=并发)

异步并不意味着并发并发也不意味着异步。这些术语在语义上会被初学者(和一些专家)混淆,但它们是不同的概念!

您可以只用一个,有时也可以两者兼用。

异步意味着你不等待某事,它并不意味着它在其他事情发生的同时发生,只是它可能会稍后发生..

并发意味着不止一件完全独立的事情同时发生,这些事情可以是同步的,同时又是孤立和并发的。

具体实现

CPython是单线程的,不用担心重入。 Other Python runtimes允许并发,如果使用这些功能,则需要锁定机制。

C 在本质上也是单线程的,除非您专门启动新线程,否则您将需要一个锁定机制。

关于python - 与 C 相比,此异步代码将如何在 Python 中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com