Java 同步一个外部文件
Java synchronize an external file
在Java中有没有同步两个进程之间的文件读写?
我发现FileLock,有了这个我可以在文件写入时锁定文件,但我需要有一个进程轮询读取,效率不高。我想模拟信号量,使其高效:
class Process<E> {
private E e;
private final Semaphore read = new Semaphore(0);
private final Semaphore write = new Semaphore(1);
public final void write(final E e) {
write.acquire();
this.e = e;
read.release();
}
public final E read() {
read.acquire();
E e = this.e;
write.release();
return e;
}
}
是否可以使用 Filelock 或其他 class?
提前致谢。
忘记了 Java 管道?喜欢PipedInputStream and PipedOutputStream需要使用不同的线程来高效交换数据。
在Java中有没有同步两个进程之间的文件读写?
我发现FileLock,有了这个我可以在文件写入时锁定文件,但我需要有一个进程轮询读取,效率不高。我想模拟信号量,使其高效:
class Process<E> {
private E e;
private final Semaphore read = new Semaphore(0);
private final Semaphore write = new Semaphore(1);
public final void write(final E e) {
write.acquire();
this.e = e;
read.release();
}
public final E read() {
read.acquire();
E e = this.e;
write.release();
return e;
}
}
是否可以使用 Filelock 或其他 class?
提前致谢。
忘记了 Java 管道?喜欢PipedInputStream and PipedOutputStream需要使用不同的线程来高效交换数据。