如何在python中的线程之间共享整数
我有两个线程:如何在python中的线程之间共享整数,python,python-multithreading,Python,Python Multithreading,我有两个线程: 一个工作线程,循环查找来自ssh套接字的输入 一个管理线程,处理来自工作线程的内容 他们使用一个队列进行通信——当有东西进来时,工作人员会将它放在队列中,如果它很重要,经理会将它取下进行处理 然而,我想让经理也知道最后一次有什么事情发生——不管是重要的还是不重要的 我的想法是,工人可以设置一个整数,经理可以读取它。但似乎没有一个线程原语支持这一点 如果不向worker实例变量写入数据,那么管理员只读取worker实例变量是否安全?还是会出现一些共享内存问题?有没有什么方法可以
- 一个工作线程,循环查找来自ssh套接字的输入
- 一个管理线程,处理来自工作线程的内容
锁
,即使它现在在CPython中实际上并不需要(实际上,可能永远也不需要)
使用锁
同步对变量的访问非常简单:
lock = threading.Lock()
线程1:
with lock:
print(shared_int) # Some read operation
# Lock is release once we leave the with block
线程2:
with lock:
shared_int = 55 # Some write operation