请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能
線程池:
import java.util.linkedlist;
public abstract class manager {
private string mthreadpoolname = null;
private int mthreadpoolmaxsize = 1;
private linkedlist workers = new linkedlist();
public manager() {
}
public manager(string name, int poolmaxsize) {
mthreadpoolname = name;
createworker(name, poolmaxsize);
mthreadpoolmaxsize = poolmaxsize;
}
private void createworker(int poolmaxsize) {
for (int i = 0; i < poolmaxsize; i++) {
worker worker = new worker(this);
workers.addlast(worker);
}
}
public synchronized worker getidleworker() {
return (worker)workers.removefirst();
}
public synchronized void notifyfree(worker worker) {
if (workers.size() < mthreadpoolmaxsize) {
workers.addlast(worker);
} else {
worker = null;
}
}
public int getthreadpoolmaxsize() {
return mthreadpoolmaxsize;
}
public void setthreadpoolmaxsize(int threadpoolmaxsize) {
this.mthreadpoolmaxsize = threadpoolmaxsize;
}
}
線程抽象類:
public abstract class worker implements runnable {
private manager mmanager = null;
private thread mthread = null;
public worker() {
}
public worker(string threadname, manager manager) {
mmanager = manager;
mthread = new thread(this, threadname);
init();
mthread.start();
}
public abstract void init();
public void run() {
while (true) {
waitforstart();
worker worker = mmanager.getidleworker();
process();
isrunning = false;
mmanager.notifyfree(worker);
}
}
public abstract void process();
public void start() {
isrunning = true;
mmanager.getidleworker();
notifytostart();
}
public synchronized void waitforstart() {
try {
wait();
} catch (interruptedexception ex) {
}
}
public synchronized void notifytostart() {
notify();
}
}
分享到:
2009-06-16 14:44
瀏覽 956
評(píng)論
總結(jié)
以上是生活随笔為你收集整理的请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 一化工企业罐区汽油泵房
- 下一篇: 房货利率上浮以前房贷会上浮吗
