【发布时间】:2010-04-30 11:02:30
【问题描述】:
我有一个由两个函数操作的类。一个函数创建一个小部件列表并将其写入类中:
def updateWidgets(self):
widgets = self.generateWidgetList()
self.widgets = widgets
另一个函数以某种方式处理小部件:
def workOnWidgets(self):
for widget in self.widgets:
self.workOnWidget(widget)
这些函数中的每一个都在它自己的线程中运行。问题是,如果updateWidgets() 线程在workOnWidgets() 线程运行时执行会发生什么?
我假设作为for...in 循环的一部分创建的迭代器将保留对old self.widgets 对象的某种引用?所以我将完成对旧列表的迭代......但我很想知道。
【问题讨论】:
标签: python multithreading iterator thread-safety atomic