⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displayreadwrite.java

📁 英国帝国理工学院电脑系多线程课程教学材料之十一 ---- 读取者与写入者范例
💻 JAVA
字号:
/********************************************************/
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -