最近实习的时候,需要制作拉链表,将50多万的DataFrame类型数据展开后,得到一份有500多万条数据的结果,要存储到csv文件中。
因为数据量比较大,过程比较繁琐,所以我是用多进程搭配redis处理的,但是在存储到csv文件的时候发现,每隔几千行或是几万行,就有部分数据出现内容不全或是乱码的现象。我上网查阅资料,貌似都没人提到这个问题。我估计是进程之间的竞争导致了这样的结果,于是我在存储的地方加上了锁Lock,最后得到的结果是正常的。
所以得出结论,在多进程共用同一资源时,建议添加锁,防止进程之间的竞争导致一些错误结果。