当有线程正在读的时候,不允许写 线程写,但是允许其他的读线程进行读。有写线程正在写的时候,其他的线程不应该读写。为了防止写线程出现饥饿现象,当线程正在读,如果写线程请求写,那么应该禁止再来的读线程进行读。
File.java
package readerWriter;
public class File {
private String name;
public File(String name)
{
this.name=name;
}
}
Pool.java
package readerWriter;
public class Pool {
private int readerNumber=0;
private int writerNumber=0;
private boolean waittingWriten;
public boolean isWaittingWriten() {
return waittingWriten;
}
public void setWaittingWriten(boolean waittingWriten) {
this.waittingWriten = waittingWriten;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
File file;
public Pool(File file)
{
this.file=file;
}
public int getReaderNumber() {
return readerNumber;
}
public void setReaderNumber(int readerNumber) {
this.readerNumber = readerNumber;
}
public int getWriterNumber() {
return writerNumber;
}
public void setWriterNumber(int writerNumber) {
this.writerNumber = writerNumber;
}
}
Reader.java
package readerWriter;
public class Reader implements Runnable{
private String