首页 > 解决方案 > 多线程模式下的快速文件处理

问题描述

我正在用java开发一个Web应用程序。它有一个在每个页面请求时都会读取的文件,但我必须考虑更改它(这很少见)。你需要想出一些东西来让一切尽快工作。有什么建议吗?

标签: javamultithreadingfile

解决方案


您可以使用一种 copy_on_change。如果你的文件是 /path/myFile_v1.txt 写类似的代码

private AtomicInteger version=1;

public String getFilePath() {
    return "/path/myFile_v"+version.get()+".txt"
}

public void synchronized makeAChange() {
     // create a new copy of the file with some changes
     version.incrementAndGet();
}

您可以在一段时间后删除旧副本或每次删除版本 2。进行更改时不会阻止读取线程。


推荐阅读