擅长:python、mysql、java
<p>这是解决方案-这允许每个类单独锁,因为它是在类构造函数级别(元类)上实现的。感谢您的所有提示和帮助,以实现这段代码,它看起来非常好。在</p>
<p>我也可以被损坏的变量,但需要使用硬代码''u A_uulock'什么可能是有问题的,没有测试我。在</p>
<pre><code>import threading
class MetaA(type):
def __new__(self, name, bases, clsDict):
# change <type> behavior
clsDict['_lock'] = threading.Lock()
return super(MetaA, self).__new__(self, name, bases, clsDict)
class A(object):
__metaclass__ = MetaA
@classmethod
def getLock(cls):
return cls._lock
class B(A):
pass
print 'id(A.getLock())', id(A.getLock())
print 'id(B.getLock())', id(B.getLock())
print A.getLock() == B.getLock()
</code></pre>