lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
class Thread(QRunnable):
def __init__(self):
super(Thread, self).__init__()
self.mutex = QMutex()
def run(self):
self.mutex.lock()
lst.pop(0)
print(str(lst))
time.sleep(5)
self.mutex.unlock()
上面的代码是我想要实现的一个示例,我有一个在类之外定义的列表。我想定期弹出列表的第一个元素。如果我正在运行 5 个线程,我只希望一个线程一次改变列表。每次我尝试这个时,5 个线程都会尝试弹出第一个元素并且不要按我的意愿等待。当我在本机 python 线程库中重新创建它时,它按预期工作。我在这里做错了什么?