kann lock.acquire () nicht unterbrechen, wohingegen ich time.sleep () unterbrechen kann
In Windows, Python 3.4
import threading
l = threading.Lock()
l.acquire()
l.acquire()
löst einen Deadlock aus und STRG + C kann ihn nicht stoppen. Du musst den Prozess beenden.
Auf der anderen Seite
import time
time.sleep(100000)
kann jederzeit mit STRG + C unterbrochen werden (Ich habe auf einigen anderen SO Fragen / Antworten etwas anderes gelesen, aber es funktioniert gut)
Beide verlassen sich auf OS-Systemaufrufe, warum funktioniert es also nicht für Sperren und es funktioniert fürsleep
? Ist es weiltime.sleep(1000000)
ist (ungefähr) äquivalent zufor i in range(10000000): time.sleep(0.1)
und kann so fein unterbrochen werden?