displayreadwrite.java

来自「演示win32的socket 通讯 八皇后的改进算法 并发Concurren」· 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 + -
显示快捷键?