3
當我試圖使用kill()殺greenlet,一個「塊」參數是默認的真實,之間有什麼「殺」 greenlet塊或不
Greenlet.kill(self, exception, block, timeout)
的差異醫生說:
如果塊是真(默認值),等到greenlet死亡或 可選超時到期。如果區塊是虛假,當前 greenlet不是未計劃的。
如何正確理解? thx
當我試圖使用kill()殺greenlet,一個「塊」參數是默認的真實,之間有什麼「殺」 greenlet塊或不
Greenlet.kill(self, exception, block, timeout)
的差異醫生說:
如果塊是真(默認值),等到greenlet死亡或 可選超時到期。如果區塊是虛假,當前 greenlet不是未計劃的。
如何正確理解? thx
可以說你有兩個greenlets A
和B
。
1)在B
裏面,你可以撥打A.kill(block=True)
。在發生上下文切換後,Python立即跳到A
,並在A
中引發異常。 A
可能會處理或不會,它可能跳到別的地方,可能會發生超時,等等。
2)在B
裏面,您可以撥打A.kill(block=False)
。上下文切換不會發生。 B
在殺死後繼續運行其他命令。殺死命令計劃會觸發,即只要Python跳轉到A
就會引發異常。
所以AFAIK「塊」只是意味着「現在切換」。