我想要读取和写入文件的程序。我想一次执行任何一项操作(读取或写入)。如果我正在读取文件,写入请求将等待直到读取操作完成。如果我写入文件,则读取请求将等待直到写操作完成
问问题
289 次
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 回答