线程池:

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

评论

请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能相关推荐

  1. java 线程池 中断_如何中断(interrupt)线程(thread)(线程池的线程中断我的理解是一个意思)...

    1.概述基本实现是,通过 InterruptedException 异常来终止程序,至于线程什么时候终止,只能由jvm来决定了,若理解的不到位,欢迎大牛们指点 2.code 如下 package co ...

  2. java编程用户输入两个数字_编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不...

    导航:网站首页 > 编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不 编写一个Java应用程序,要求从键盘输入 ...

  3. java 线程加载类_怎么判断java当前线程是否加载了一个类的字节码

    展开全部 原生的ClassLoader是有e68a843231313335323631343130323136353331333337616631一个方法判断类是否已经加载的/** * Returns ...

  4. java守护线程的使用场景_浅谈Java守护线程

    一.在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 1.Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (垃圾回收 ...

  5. java web 显示项目下的图片_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在 six-finger-web 一个Web后端 ...

  6. java中线程死锁及避免_如何避免Java线程中的死锁?

    java中线程死锁及避免 如何避免Java中的死锁? 是Java面试中最受欢迎的问题之一,也是本季多线程的风格,主要是在高层提出,并带有很多后续问题. 尽管问题看起来很基础,但是一旦您开始深入研究,大 ...

  7. executor线程池框架_如何使用Java 5 Executor框架创建线程池

    executor线程池框架 Java 5以Executor框架的形式在Java中引入了线程池,它允许Java程序员将任务提交与任务执行分离. 如果要使用Java进行服务器端编程,则线程池是维护系统可伸 ...

  8. 设置线程当天十二点执行_这份JAVA多线程笔记真的是细节满满,几乎全是你工作能用到的干货...

    前言 1:发挥多核CPU的优势(充分利用cpu资源) 如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%.单核CPU上所谓的"多线程"那是假的多线程 ...

  9. 池流程图_干货收藏 | Java程序员必备的一些流程图

    前言: 整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习. 1.spring的生命周期 Spring作为当前Java最流行.最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必 ...

  10. java线程池深入讲解_死磕 java线程系列之线程池深入解析——生命周期

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类. 简介 上一章我们一起重温了下线程的 ...

最新文章

  1. 安卓收取费用_作为自由职业者应收取的费用:以价值为基础的定价是否能达到炒作的目的?...
  2. linux操作普通文件夹,Linux学习--2.文件管理的基本命令
  3. XCTF-Reverse:open-source
  4. 你还在为20倍的连麦成本发愁吗?
  5. 实现RPC就是这么简单
  6. AD9833介绍与应用(C语言实现)
  7. iOS常用三方库、插件、知名技术博客、常用开发工具使用介绍等等,大家可以一次性下载了!
  8. 无人驾驶轨迹跟踪之纯轨迹跟踪(Pure Pursuit)
  9. SSM项目实战:学生学籍管理系统
  10. 03-什么是Mach-O文件?
  11. Redmi AirDots只有一边有声音?? 如何进行双耳连接?
  12. SHOUG线上活动 Maclean Liu分享《学习甲骨文数据库的自由之翼-与Oracle的世界相连接》...
  13. PCB板的跨分割设计
  14. 内网ip如何变成公网ip?快解析转换域名映射外网访问
  15. (四)巴菲特与索罗斯的投资习惯:乔治索罗斯不冒险吗?
  16. Java web期末
  17. 数字孪生技术在智慧城市规划中的发展影响及其应用
  18. 阿里巴巴从云第一到AI第一的必然性
  19. U盘识别不出来——解决办法
  20. ?xml version=1.0 encoding=utf-8?appcommand time=1494385110doa

热门文章

  1. 让读博轻松、愉快的10种方法
  2. 难以置信的美丽,世界的数学结构
  3. 首批国家应用数学中心名单公布,哪些高校获批?
  4. 一道小学数学题引发的“纷争” 产科医生给出解答
  5. 历史上的今天:让我们一起缅怀菲尔兹
  6. python 服务注册_python注册Windows服务
  7. eclipse--android开发环境搭建教程
  8. nginx+keepalived详细配置信息
  9. VS调试启动编辑并继续功能
  10. 开课啦 dubbo-go 微服务升级实战