2014-01-21 28 views
3

當我試圖使用kill()殺greenlet,一個「塊」參數是默認的真實,之間有什麼「殺」 greenlet塊或不

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

的差異醫生說:

如果塊是(默認值),等到greenlet死亡或 可選超時到期。如果區塊是虛假,當前 greenlet不是未計劃的。

如何正確理解? thx

回答

2

可以說你有兩個greenlets AB

1)在B裏面,你可以撥打A.kill(block=True)。在發生上下文切換後,Python立即跳到A,並在A中引發異常。 A可能會處理或不會,它可能跳到別的地方,可能會發生超時,等等。

2)在B裏面,您可以撥打A.kill(block=False)。上下文切換不會發生B在殺死後繼續運行其他命令。殺死命令計劃會觸發,即只要Python跳轉到A就會引發異常。

所以AFAIK「塊」只是意味着「現在切換」。

相關問題