Python:我可以使用類變量作爲線程鎖嗎?

我正在考慮使用類變量作爲線程鎖,因爲我不想在全局變量中定義鎖並且還想防止死鎖。這實際上有用嗎?例:

import threading

class A(object):
    lock = threading.Lock()
    a = 1

    @classmethod
    def increase_a(cls):
        with cls.lock:
            cls.a += 1

考慮到我不會A.lock在類的內部或外部重新分配變量,我的假設是它被視爲全局鎖定?這個對嗎?

 

解決方案


當然。你想要一個容易獲得的鎖的引用,並將它存儲在類上就可以了。

你可能想調用它__lock(激活名稱修改),所以它不會與A的子類中的鎖混淆


本文首發於python黑洞網,csdn同步更新

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章