http://www.javafan.net/article/20040225085618607.html
解决方案 »
- 在sun主页下载的j2ee附带glassfish使用中的问题
- JformDesigner里怎么设置组建的eventlistener啊
- <c:forEach>循环输出数组?
- 继续散分
- 请问J2EE架构师日常工作的内容是什么?
- 600分!JMS选型,ActiveMQ还是JORAM?
- Tomcat的控制台下总会打印一大片的ParserUtils: warning org.xml.sax.SAXParseException信息?
- tomcat4.1.8配置servlet报错:组件“web-app”在此不允许“servlet”。
- 服务器端用java的serversocket,客户端用VC写的csocket,它们之间能正常接发数据吗?
- 寻求j2ee1.4或weblogin7.0以上版本的服务配置及JSP EJB的发布方面的资料
- 在Struts标签开发的页面里怎么用javascript脚本
- 调用web服务生成的xml结构通过中性的xml结构转变成另外一种xml结构???
} 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();
}}