⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadpool.java

📁 java网络编程
💻 JAVA
字号:
package multithread;



import java.util.Vector;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class ThreadPool {

  private Vector freeThreads =new Vector();
  private Vector inUseThreads=new Vector();

  private static int INITIAL_SIZE=10;

  public ThreadPool() {
    fillPool(INITIAL_SIZE);
  }

  private void fillPool(int poolSize){
    for (int i=0;i<poolSize;i++){
      PoolableThread pt=new PoolableThread(this);
      pt.start();
      freeThreads.add(pt);
      pt.setName("Poolable Thread - "+i);
    }
    try{
      Thread.sleep(2000);
    }catch(InterruptedException ie){}
  }

  public synchronized PoolableThread runTask(Runnable task){
    if (freeThreads.isEmpty()){
      throw new RuntimeException("All threads is used.");
    }
    PoolableThread t= (PoolableThread) freeThreads.remove(0);
    inUseThreads.add(t);
    t.setTask(task);
    return t;
  }

  synchronized void free(PoolableThread t){
    inUseThreads.remove(t);
    freeThreads.add(t);
  }
}

⌨️ 快捷键说明

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