python多线程操作字典_如何在多线程系统中使用python字典

我设计了一个系统,通过套接字获取数据,并将其存储到字典中作为数据库。然后,我的所有其他模块(GUI、analysis、write_-u-to-u-log_-file等)都将访问数据库,并对字典执行所需的操作,例如制作小部件/将字典复制到日志文件。但是由于所有这些事情都以不同的速率发生,所以我选择让每个模块都在自己的线程上,这样我就可以控制频率。在

在主运行函数中有如下内容:from threading import Thread

import data_collector

import write_to_log_file

def main():

db = {}

receive_data_thread = Thread(target=data_collector.main, arg=(db,))

recieve_data_thread.start() # writes to dictionary @ 50 Hz

log_data_thread = Thread(target=write_to_log_file.main, arg(db,))

log_data_thread.start() # reads dictionary @ 1 Hz

但是这两个模块似乎并不是在同一个dictionary实例上工作,因为log_data_线程只会打印出空字典,即使data_collector显示它插入到字典中的数据也是如此。在

字典中只有一个编写器,所以我不必担心线程会相互踩在一起,我只需要找出一种方法,让所有模块在编写当前数据库时读取它。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值