java - 多线程java程序中不断监控动态更新的文件

标签 java multithreading parallel-processing

我想知道什么是高效的(在时间和内存方面)java代码来实现以下功能:

我需要一个java程序来连续检查两个文件,第一个文件我们称之为A,将有一个不断添加的产品名称,另一个文件B将是来自不同来源的相应价格。这两个文件都在动态更新。该程序要做的是,每当将产品添加到 A 时,它都会将该单词添加到列表中,并且只要没有添加新产品,它就会考虑从那时起添加到文件 B 的每个新价格作为价格的相应产品。然后它将创建产品和价格的映射。

所以,这是文件

一个

Macbook Pro

戴尔 XPS

联想

B

(Macbook pro 添加到文件 A 中)

100

200

(Dell XPS 添加到文件 A 中)

300

400

(A中添加联想)

500

600

700

所以它将创建一个类似的映射,

Macbook Pro -> 100,200

戴尔 XPS -> 300、400

联想 -> 500、600、700

上面的例子说明了我想要实现的目标。 到目前为止,我的想法是,让两个线程监视每个文件,每当将产品添加到 A 时,就从 B 开始计数(标记 B 中的先前位置),每当将新产品添加到 A 时,从之前标记的位置开始从 B 开始计数。 这是正确的做法吗? 如何才能不断地读取动态文件呢?

最佳答案

我会使用Apache Commons-IO FileAlterationObserver ,这样您就可以使用在文件更改时收到通知的监听器。

关于java - 多线程java程序中不断监控动态更新的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12794899/

相关文章:

multithreading - 线程安全的数据结构设计

r - 在 R 中使用 SQLite 的多个同时线程

parallel-processing - 有没有办法在所有 "x".spec 文件运行后运行指定的 .spec 文件?柏

java -\n 从文件读取到列表然后输出时不起作用。 java

使用 css 选择器解析 XML 的 Java 库

java - 使用 Java 观察表达式在 Eclipse 中不显示值

c++ - 分布式锁

Java Arraylist 按引用还是按值工作?

java - 执行者完成服务?如果我们有invokeAll,为什么还需要一个?

python - 在多线程环境中是否需要锁来保护 python 2.7 列表?