我正在创建一个 threading.Timer(2,work)
运行线程。在每个工作函数内,在某些情况下,全局计数器必须递增,而不会发生冲突,以便在生成的工作线程中访问计数器变量。
我试过 Queue.Queue
分配的计数器以及 threading.Lock()
。这是实现线程安全的全局增量变量的最佳方式。
最佳答案
不确定您是否已经尝试过这种特定的语法,但对我来说这一直很有效:
定义一个全局锁:
import threading
threadLock = threading.Lock()
然后每次在您的各个线程中增加计数器时,您都必须获取和释放锁:
with threadLock:
global_counter += 1
关于python - 如何在 python 中创建一个线程安全的全局计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088139/