threadpool.java

来自「网络+多线程+输入输出流的结合运用」· Java 代码 · 共 46 行

JAVA
46
字号
package socket;

import java.net.*;

public class ThreadPool {
  final int MAX_NUM=5;
  MyService[] ms=new MyService[MAX_NUM];


  public ThreadPool() {

     for(int i=0;i<MAX_NUM;i++){
        ms[i]=new MyService(this);
        ms[i].setStatus(MyService.STATUS_UNBUSY);
        ms[i].start();
     }

  }


  public synchronized MyService getService(Socket s){

   while(true){
    for(int i=0;i<MAX_NUM;i++){
        if(!ms[i].getStatus()){
           ms[i].setStatus(MyService.STATUS_BUSY);
           ms[i].setSocket(s);
           return ms[i];
        }
     }

     try{
        this.wait();
     }catch(Exception e){}
   }

  }

  public synchronized boolean releaseService(MyService m){
     this.notify();
     m.setStatus(MyService.STATUS_UNBUSY);
     return true;
  }

}

⌨️ 快捷键说明

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