线程池:
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();
}
}
分享到:
相关推荐
请写一个java程序实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 84.14. 列出某文件夹下的所有文件; 123 84.15. java调用系统命令实现删除文件的操作; 123 ...
请写一个java程序实现线程连接池功能? 44.给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一...
数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。从而使得用户得到一个连接的时间降低90%以上。大大提升了数据库访问的反应...使用一个守护线程维护这个连接池,完全自动化。
数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。...使用一个守护线程维护这个连接池,完全自动化。 版本说明:V5.0 。在网站后后实际应用中,发现了一些bug.
数据库连接池用在网站后台架构中,非常有利于提高用户请求的响应速度。为此,我编写了一个...经过上千个多线程同时访问的数据库连接池程序 。 资源包括一个接口,两个实现。一个测试类。 大家可以使用它,修改它。
我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,(未竟严格代码测试) ...
我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,未竟严格代码测试) ...
R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...
R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在...
我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,(未竟严格代码测试) ...
本程序是在原有基础上逐步完善的,第一版:http://download.csdn.net/detail/zpwmhx/4342943 第二版:http://download.csdn.net/detail/zpwmhx/4505209 详细文档请看: ...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...