我正在开发一个代码类似于以下代码的项目。我想知道是否可以使这个线程安全吗?我需要能够跟踪哪些元素已被更改,并将它们从下一个循环中排除。注意,函数t1和t2没有执行相同的功能。
简单地说,我需要修改列表,设置或类似的内容,以便能够跟踪进度并知道何时退出每个线程中的循环。
from multiprocessing import Process
import threading
elements = list()
elements.add({
'key': 'old_value'
})
elements.add({
'key': 'old_value2'
})
changed_elements = list()
def change(element, value):
element['key'] = value
changed_elements.append(element)
elements.remove(element)
def t1:
for i in range(0, 99):
for element in elements:
if condition:
change(element, value)
def t2:
for i in range(0, 49):
for element in elements:
if condition2:
change(element, value2)
if __name__ == '__main__':
Process(target=t1).start()
Process(target=t2).start()