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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage