今天遇见一个问题:我设计了一个很垃圾的多线程脚本,然后他崩了。
后来我错峰了一下:第一个脚本跑起来,第二个脚本等5s再启动,问题解决了。
先说一下原因:大家都知道文件流的速度很慢,需要等一个固定的时间或者满才刷缓冲区。
于是,我写了两个进程:第一个进程会更新配置文件A。第二个读取配置文件A。
进程1是这么做的:把A清空以后重写。跑大概几毫秒以后获取参数,写入文件中。然后参数在缓冲区,写入磁盘。
第二个进程,读文件A,发现文件A是空的,报错退出(现在还在缓冲区里面,没有写入磁盘)
而这两个是多进程,互相没有通信也没有等待。
所以说我很菜嘛。
解决方案:错峰。和flash(),或者不要用文件作为交互工具。
版权声明:本文为weixin_45642669原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。