我有一个程序必须读取代码栏并将读取的代码写入文本文件。每 30 秒启动一个线程,读取该文件以执行一些操作并删除已处理的行。
我的问题是,当我从主线程读取文件时,它必须能够写入更多行并在以后读取每 30 秒启动的线程。
我真的没有找到任何关于如何解决问题的样本或想法。有解决办法吗?
当你有一个像这个文件这样的共享可变资源并且有多个单元访问它时,通常使用锁。锁可以存在于程序中,但也由许多文件系统提供。需要访问时锁定文件,不再需要时释放锁定。这样,在任何给定点,您的程序只有一部分会访问该文件。
与其使用文件作为待完成工作的后备存储,不如使用队列存储“实时”数据?您仍然可以将文件用作日志,输入项目何时排队和从队列中删除的条目,以防您需要回顾操作的历史记录。这样,文件只需要被附加到并且永远不会被读取,除非需要某种回滚,例如您的程序在不合时宜的时刻停止。