をlock.acquireを中断することはできません、のpython 3.4は))(Windowsで
import threading
l = threading.Lock()
l.acquire()
l.acquire()
は、デッドロックをトリガし、CTRL + Cは、それを停止することはできません。あなたはプロセスを殺す必要があります。一方
:
import time
time.sleep(100000)
は、CTRL + Cで、いつでも中断することができます(私は他のいくつかのSOの質問/回答にそう読んだが、それは正常に動作します)
どちらのOSに依存していますシステムコールはなぜロックのために働いていないのですか?sleep
のために働いていますか?それはtime.sleep(1000000)
が(およそ)for i in range(10000000): time.sleep(0.1)
と等価であり、細かく中断することができるからですか?
については
他の重要なリソースに適合させることができる(ソケット)メインスレッドの 'time.sleep'は、シグナルハンドラによって設定されたWindowsイベントを待ちます。このイベントの待機は、最新の3.6ベータ版のイベントであるCPythonでは一貫してサポートされていません。 – eryksun