簡體   English   中英

這個實現中的threading.Lock.acquire()如何阻塞?

[英]How is threading.Lock.acquire() blocking in this implementation?

在Python 3.4.3上,我無法理解threading.Lock.acquire()在阻塞狀態設置為解鎖之前如何阻塞。

threading.Lock似乎是上面鏈接的_dummy_thread.LockType的實現。

這段代碼似乎除了阻塞之外什么都沒做。 如果我是正確的,則threading.Lock的阻塞行為的實現在哪里?

您鏈接的功能是該接口的虛擬實現。 這意味着它什么也不做。 無阻塞。 當您實際上不使用線程時,可以使用它來簡化可在線程和非線程環境中工作的代碼的編寫。

您要查看的功能在threading.py中

但是,由於實際的實現是在C中的_thread模塊中完成的,因此它沒有多少。 它是在python解釋器的編譯時選擇的。 您可以在此處找到pthreadWindows的實現

即,Windows實現使用WaitForSingleObjectEx,而pthread實現使用sem_timedwait

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM