displayreadwrite.java
来自「英国帝国理工学院电脑系多线程课程教学材料之十一 ---- 读取者与写入者范例」· Java 代码 · 共 50 行
JAVA
50 行
/********************************************************/
package concurrency.readwrite;
import concurrency.display.*;
class DisplayReadWrite implements ReadWrite {
StringCanvas display_;
ReadWrite lock_;
private int readers = 0;
private boolean writing = false;
DisplayReadWrite(StringCanvas t, ReadWrite lock) {
display_=t;
lock_=lock;
setdisplay();
}
private void setdisplay(){
display_.setString("readers= " + String.valueOf(readers)
+ " writing= " + (new Boolean(writing)).toString());
}
public void acquireRead() throws InterruptedException{
lock_.acquireRead();
++readers;
setdisplay();
}
public void releaseRead() {
lock_.releaseRead();
--readers;
setdisplay();
}
public void acquireWrite() throws InterruptedException {
lock_.acquireWrite();
writing = true;
setdisplay();
}
public void releaseWrite() {
lock_.releaseWrite();
writing = false;
setdisplay();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?