当我尝试使用kill()杀死绿色的greenlet时,'块'参数默认为true,
Greenlet.kill(self, exception, block, timeout)
文档说:
如果块为 true (默认),请等到绿色死亡或 可选超时到期。如果块是 false ,则当前 绿色不是不定期的。
如何正确理解这一点?thx
,假设您有两个greenlets A
和 B
。
1)在B
内您致电A.kill(block=True)
。在此上下文开关发生之后,立即发生了Python跳到A
,并且在A
中提出了例外。A
可能会处理或不处理它,它可能会跳到其他地方,超时可能发生在杀戮之上等。
2)在B
中您致电A.kill(block=False)
。上下文开关不会发生发生。B
在杀死后继续运行其他命令。Kill Command计划开火,即Python跳到A
,它将提高例外。
so afaik" block"只是表示"立即进行开关"。