2015-09-14 46 views
1

有没有办法在Java中的两个进程之间同步读取和写入文件?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或其他类做?

在此先感谢。

回答