我想要读写文件的程序。我想一次执行任何一个操作(读或写)。如果我正在读文件,写请求等待直到读操作完成。如果我写文件然后读请求等待直到写操作完成
答案 0 :(得分:0)
您必须使用互斥锁。它是一种结构,一次只允许一个线程使用一个资源。看看ReentrantLock。
答案 1 :(得分: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!");