-1

我想要读取和写入文件的程序。我想一次执行任何一项操作(读取或写入)。如果我正在读取文件,写入请求将等待直到读取操作完成。如果我写入文件,则读取请求将等待直到写操作完成

4

2 回答 2

0

您必须使用互斥锁。它是一种结构,一次只允许一个线程使用资源。环顾 ReentrantLock。

于 2013-04-24T09:41:53.867 回答
0

创建一个类来进行读写,并使其完全同步,例如:

public class MyFileManager{
  private static MyFileManager instance;

  public static synchronized MyFileManager getInstance(){ // to use as singelton
    if(instance==null){
      instance=new MyFileManager();
    }
    return instance;
  }

  private MyFileManager(){} // to avoid creation of new instances


 public synchronized String read(File f){
   //Do Something
 }

 public synchronized void write(File f, String s){
   //Do Something
 }

}

现在,当您想阅读或写作时,只需

String s=MyFileManager.getInstance.read(myfile);
MyFileManager.getInstance.write(myfile,"hello world!");
于 2013-04-24T09:53:00.963 回答