使用 threading 和 Queue 库运行线程时,我在线程 run() 函数中创建一个对象。假设课程是这样启动的:
class Test():
def __init__(self, dictionary={}):
self.dict = dictionary
当我尝试在不同的线程中访问字典时,Python 似乎只创建了一个字典实例。这是线程类。我开始了其中的两个:
class ThreadTest(threading.Thread):
def run(self):
while True:
// interact with Queue items
obj = Test()
print "%s - %s" % (self.name, id(obj.dict))
queue.task_done()
和输出:
Thread-1 - 19219616
Thread-2 - 19219616
这真的很令人困惑,因为 Test 类被创建了两次,但它共享同一个字典。
在这种情况下,有没有办法创建一个新的字典实例?