gpt4 book ai didi

python - 'kill' greenlet block 与否有什么区别

转载 作者:行者123 更新时间:2023-11-28 17:43:30 25 4
gpt4 key购买 nike

当我尝试使用 kill() 杀死一个 greenlet 时,'block' 参数默认为 True,

Greenlet.kill(self, exception, block, timeout)

文档说:

If block is True (the default), wait until the greenlet dies or the optional timeout expires. If block is False, the current greenlet is not unscheduled.

如何正确理解这个?谢谢

最佳答案

假设您有两个 greenlet AB

1) 在 B 中调用 A.kill(block=True)。上下文切换发生后,Python 立即跳转到 A 并在 A 中引发异常。 A 可能会处理或不处理它,它可能会跳转到其他地方,可能会在 kill 时发生超时,等等。

2) 在 B 中调用 A.kill(block=False)。上下文切换不会发生。 B kill后继续运行其他命令。不过,Kill 命令已按计划触发,即一旦 Python 跳转到 A,它就会引发异常。

所以 AFAIK“阻止”仅表示“立即进行切换”。

关于python - 'kill' greenlet block 与否有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21252024/

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