2013-02-20 47 views
4

我想使用全局變量, 初始化一次。 有一個線程安全訪問。如何在python中以線程安全的方式使用全局變量

有人可以分享一個例子嗎?

+1

谷歌搜索python變量作用域。第一個鏈接:http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/ – Achrome 2013-02-20 12:00:13

+0

你是指什麼線程安全? http://blogs.msdn.com/b/ericlippert/archive/2009/10/19/what-is-this-thing-you-call-thread-safe.aspx – 2013-02-20 12:02:41

回答

3

如果您需要只讀訪問權限並在線程產生之前初始化該值,則不必擔心線程安全性。

如果不是這樣的話,Python threading庫可能是您需要的,更確切地說是鎖。一個非常好的閱讀主題 - http://effbot.org/zone/thread-synchronization.htm有很多例子。

1

如果您使用multiprocessing.Processes,則確實存在問題。在這種情況下,您應該查看多處理模塊中的管理器和隊列。

0

如果您初始化一次,並且在模塊加載時初始化它(也就是說:在可以從其他線程訪問它之前),您將完全沒有線程安全問題。不需要同步。

但是,如果你的意思是一個更復雜的情況,你必須進一步解釋它以得到一個合理的代碼示例。