📄 threadpool.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 + -