数据采集和保存时容易丢失的问题
大家好!
目前在做一个项目,用到TCP通信和将通信获取的数据解析并保存到数据库(SQLite)。现在发现在正常工作时,查看数据库会有丢数据的情况发生。丢好几条数据,长度几秒。我保存和采集数据用了两个线程。但是共用一个Dictionary数据集合,并且这个Dictionary在采集和保存时都加了Locked锁住,防止出现数据在采集时,保存数据线程会调用Dictionary里面的内容。
但是我现在也在担心会不会出现互锁的情况发生,到时数据保存时丢失。
可以确定的是:
1.在数据采集阶段没有丢失,是保存时丢了。
请大家看这种情况下我应该如何保存数据,或者建一个队列保存。采集时插入队列Queue,保存时读取队列Queue,这样还需要Locked住这个队列吗?