【问题标题】:Java synchronize an external fileJava同步外部文件
【发布时间】:2015-09-14 16:17:17
【问题描述】:

有没有办法在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 或其他类来做?

提前致谢。

【问题讨论】:

    标签: java synchronization


    【解决方案1】:

    忘记了 Java 管道?比如PipedInputStreamPipedOutputStream需要使用不同的线程来高效交换数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2020-12-09
      相关资源
      最近更新 更多