谢谢各位大拿yihui tctcab Ihavenothing 。
数据量比较大,得有>1T了,文件数量也比较多,8万多,如果再拆分一下,量有点大。
今天上午采用了和益辉类似的方法,也是比较笨的,思路如下:
首先按照规则生成这8万个文件,可以是空的;
然后启动多线程处理,首先判断目标文件是否存在。当某个线程处理到这个文件时,立即将文件名修改,然后将数据写入;结束后将文件名改回来。
当另外的线程也碰到了某个文件正好在被其它线程操作时,理论上它是找不到这个文件的,因为文件名被改掉了。所以当前线程就while循环判断文件是否存在,直到上一个线程将文件释放出来。
目前测试了部分的数据,好像正常(理论上确实存在那么一瞬间两个线程同一时刻处理同一个文件,后期处理时再看看)
以前处理一年的数据需要12小时,现在估计不到1小时,还在继续思考如何再优化提高速度😃