【发布时间】:2015-09-17 03:25:23
【问题描述】:
考虑以下场景:
- 进程 1 (Writer) 不断向文件 (sharedFile.txt) 追加一行
- 进程 2 (Reader) 不断地从 sharedFile.txt 中读取一行
我的问题是:
在java中是否有可能:
- Reader 进程以某种方式使 Writer 进程崩溃(即中断 Writer 的进程)?
- Reader 仅根据文件统计信息,如何知道何时停止读取文件(Reader 不知道其他人是否正在写入文件)?
演示
进程一(Writer):
...
while(!done){
String nextLine;//process the line
writeLine(nextLine);
...
}
...
进程二(Reader):
...
while(hasNextLine()){
String nextLine= readLine();
...
}
...
注意:
Writer 进程具有优先权。所以什么都不能干扰它。
【问题讨论】:
-
我感觉你想要一个共享的 BlockingQueue。不是共享文件。 docs.oracle.com/javase/7/docs/api/java/util/concurrent/…
标签: java file io filewriter