cubbyhole.java

来自「java实现的线程同步」· Java 代码 · 共 40 行

JAVA
40 行
字号
public class CubbyHole {
    private int contents;
    private int available = 1;

    public synchronized int get() {
        while (available != 0) {
            try {
                wait();
            } catch (InterruptedException e) { }
        }
        available = 1;
        notifyAll();
        return contents;
    }

    public synchronized void put(int value) {
        while (available !=1) {
            try {
                wait();
            } catch (InterruptedException e) { }
        }
        contents = value;
        available = 2;
        notifyAll();
    }


  public synchronized void add() {
          while (available !=2) {
              try {
                  wait();
              } catch (InterruptedException e) { }
          }
          contents=contents+10;
          available = 0;
          notifyAll();
      }
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?