2010-07-23 51 views
7

我的主要問題是它的線程鎖對象創建原子鎖嗎?它並不是說模塊文檔中的鎖是原子的。在pythons互斥體文檔中,它確實表示互斥鎖是原子的,但它似乎是在某處讀取的,實際上它不是。我想知道如果有人能夠給我一些關於這個主題的見解。我應該使用哪個鎖。鎖的全部要點是允許更高級別的原子操作 - 我使用python的任何性質的2.4互斥鎖與線程鎖。使用哪個?

回答

13

鎖將是相當無用的,如果他們不是原子當前運行我的腳本。

所有線程的同步對象(鎖,rlocks,信號量,boundedsemaphores)利用原子指令,因爲這樣做互斥。

應該使用threading,因爲mutex實際上已被棄用(並在Python 3中刪除)。

+0

謝謝,我只是想仔細檢查。 – Richard 2010-07-23 17:12:41

+1

和更大的理由不使用'mutex'模塊:它的鎖是線程無知。它們用於使用'sched'模塊的單線程程序。基本上,它們是無用的。 – 2010-07-23 18:10:47

+0

@Thomas武泰,我認爲,這就是爲什麼他們不再保持互斥模塊在Python 3 – Richard 2010-07-23 19:01:13