python - 如何在 python 中创建一个线程安全的全局计数器

标签 python multithreading

我正在创建一个 threading.Timer(2,work) 运行线程。在每个工作函数内,在某些情况下,全局计数器必须递增,而不会发生冲突,以便在生成的工作线程中访问计数器变量。

我试过 Queue.Queue 分配的计数器以及 threading.Lock()。这是实现线程安全的全局增量变量的最佳方式。

之前有人在这里提问:Python threading. How do I lock a thread?

最佳答案

不确定您是否已经尝试过这种特定的语法,但对我来说这一直很有效:

定义一个全局锁:

import threading
threadLock = threading.Lock()

然后每次在您的各个线程中增加计数器时,您都必须获取和释放锁:

with threadLock:
    global_counter += 1

关于python - 如何在 python 中创建一个线程安全的全局计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088139/

相关文章:

python - 如何将行索引更改回 pandas 数据框中的列?

Python:执行此循环的 Pythonic 方式是什么?

python - 记录由 fileConfig() 配置的删除/检查/修改处理程序

Java:在线程中执行一条语句

java - ScheduledExecutorService中断具体任务的周期性执行

Java何时启动新线程?

python - 有没有办法在 python 的列表推导中使用两个 if 条件

python - 如何在Python中使用Selenium上传选定的文件?

c++ - 在 C++ 多线程程序中测量耗时

c# - 使用 TPL 的协作式多任务处理