- 浏览: 675789 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Hippyqq:
谢谢很有用,
java中遍历MAP的几种方法 -
XSoftlab:
超详细。。。Java map 详解 - 用法、遍历、排序、常用 ...
java中遍历MAP的几种方法 -
bobo22:
importnet.sf.fmj.ui.application ...
java来调用电脑视频摄像头拍照进行截图 -
qq981378640:
#include <stdio.h>
int ...
c语言中unsigned类型和普通类型间的转换 -
qq981378640:
楼主你这样有点复杂了,直接这样写更好更方便
#include ...
c语言中unsigned类型和普通类型间的转换
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();
}
}
转http://www.itzhuyi.com/Item/Show.asp?d=10268&m=1
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();
}
}
转http://www.itzhuyi.com/Item/Show.asp?d=10268&m=1
发表评论
-
java应用CPU占用100%内存泄漏分析总结
2017-11-28 08:46 514转; http://www.blogjava.net/hank ... -
Java Mysql存取Blob数据
2014-10-21 12:54 1488当数据库字段为blob类型时 ,我们如果使用PreparedS ... -
关于日志的等级 的配置
2014-07-02 16:49 607#这里定义能显示到的最低级别,若定义到INFO级别,则看不到D ... -
Extjs中如何在一行textfield后面加几个字
2014-04-14 16:38 1482{ fieldLabel : '输入框', xtype : ' ... -
数据库中图片的操作(字节流的操作)
2013-12-09 17:26 794package com.fww.util; import j ... -
java 获得本地ip
2013-11-28 18:04 856Enumeration allNetInterfaces = ... -
java多线程下载的例子代码
2013-09-09 16:16 0java多线程下载的例子代码 import java.io.I ... -
java来调用电脑视频摄像头拍照进行截图
2013-09-09 15:34 10341packagecom.pengo.capture; i ... -
java中lucene解析word工具类
2013-09-09 15:32 1015java中lucene解析word工具类(读取word文档并查 ... -
Java 向oracle插入百万数据
2013-09-09 15:30 1521这里的表是没加索引的 ... -
java 写 excel
2013-08-28 10:29 922import java.io.FileOutputStream ... -
list 排序
2013-06-20 20:43 1026import java.util.Collections; i ... -
java抓取网络图片放到本地
2013-05-07 10:39 4234import java.io.BufferedInputStr ... -
java代码发送JSON格式的httpPOST请求
2013-05-06 13:41 20278package com.test; import java. ... -
java操作excel(HSSF样式) .
2013-04-15 15:06 1910java操作excel(HSSF样式一) import ja ... -
JAVA+Ftpclient操作
2013-03-07 16:35 6522最近再做个ftp上传、下载的项目,用到的包是sun.net.f ... -
自动消除文本框中的空格;js清除空格问题,去除空格问题
2013-03-01 11:22 6276自动消除文本框中的空格;js清除空格问题,去除空格问题 要完成 ... -
java执行Linux命令 .
2012-12-26 09:29 1227/** * 修改Linux目录权限 * @param ... -
UUID生成类
2012-12-16 18:18 2415import java.net.InetAddress; im ... -
java反射获得类的字段和值
2012-12-10 17:26 1598import java.util.HashMap; impo ...
相关推荐
请写一个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的支持,这二者加...
R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...