iothread.java

来自「java写的股票交易系统」· Java 代码 · 共 46 行

JAVA
46
字号
package trader.nw;

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) {
       skt = s;
       notify();
    }
        // else -- log error
  }

  public synchronized void run() {
    while (true) {
      try {
        System.out.println("IoThread " + ioThreadId + 
          " entering into wait state");
        wait();
        System.out.println("IoThread " + ioThreadId + 
          " left wait state to service client");
        ioServer.ioService(skt);
        skt = null;
      } catch(Exception e) {
        e.printStackTrace();
      }
    }
  } 
}

⌨️ 快捷键说明

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