2009-04-11 48 views

回答

7

您通常可以交替使用這兩個,但您需要了解其中的差異。例如,multiprocessing.Event由一個名爲semaphore支持,該應用程序對平臺很敏感。

Multiprocessing.Lock由Multiprocessing.SemLock支持 - 所以它需要命名信號量。本質上,你可以互換使用它們,但是使用多處理的鎖在應用程序上引入了一些平臺需求(即它不能在BSD上運行:))

1

我不這麼認爲。線程鎖在同一進程內,而多處理鎖可能在共享內存中。

我最後一次檢查,多處理不允許你共享隊列中的鎖,這是一個線程鎖。

1

是的,您可以在單進程應用程序中正常使用來自多進程模塊的鎖,但是如果您正在使用多進程,則應該使用它的鎖。