iothread.java

来自「面向对象的设计思想」· Java 代码 · 共 46 行

JAVA
46
字号
import java.io.*;
import java.net.*;

class IoThread extends Thread {
  private Socket skt = null;
  private IoStrategy ioServer;
  private int ioThreadId;
  private static int ioThreadCounter = 1; 
  

  public IoThread(IoStrategy ioServer) {
       this.ioServer = ioServer;
       ioThreadId=ioThreadCounter++;

  }

  public boolean isIdle() {
    return skt == null;
  }

  public synchronized  void setSocket(Socket s) {
    if (skt == null) {
     //** 3 Initialize skt
    skt=s;

    //**  4 Make the thread stop waiting
    notify();
    }
        // else -- log error
  }

  public synchronized void run() {
    while (true) {
      try {
              wait();

            ioServer.ioService(skt);

        skt = null;
      } catch(Exception e) {
        e.printStackTrace();
      }
    }
  } 
}

⌨️ 快捷键说明

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