import java.util.*;
public class WorkQueue
{
private final int nThreads;//线程池的大小
private final PoolWorker[] threads;//用数组实现线程池
private final LinkedList queue;//任务队列
public WorkQueue(int nThreads){
this.nThreads = nThreads;
queue = new LinkedList();
threads = new PoolWorker[nThreads];
for (int i=0; i<nThreads; i++) {
threads[i] = new PoolWorker();
threads[i].start();//启动所有工作线程
}
}
public void execute(Runnable r) {//执行任务
synchronized(queue) {
queue.addLast(r);
queue.notify();
}
}
private class PoolWorker extends Thread {//工作线程类
public void run() {
Runnable r;
while (true) {
synchronized(queue) {
while (queue.isEmpty()) {//如果任务队列中没有任务,等待
try{
queue.wait();
}catch (InterruptedException ignored){}
}
r = (Runnable) queue.removeFirst();//有任务时,取出任务
}
try {
r.run();//执行任务
}catch (RuntimeException e) {
// You might want to log something here
}
}
}
}
public static void main(String args[]){
WorkQueue wq=new WorkQueue(10);//10个工作线程
Mytask r[]=new Mytask[20];//20个任务
for(int i=0;i<20;i++){
r[i]=new Mytask();
wq.execute(r[i]);
}
}
}
class Mytask implements Runnable{//任务接口
public void run(){
String name=Thread.currentThread().getName();
try{
Thread.sleep(100);//模拟任务执行的时间
}catch(InterruptedException e){}
System.out.println(name+" executed OK");
}
}
转自:http://www.cnblogs.com/null7/archive/2012/09/20/2696108.html
分享到:
相关推荐
MinGW Code::Blocks 精简 绿色版,其中MinGW的版本为4.4.1,是我精心优化、编译;CodeBlocks为CC重构版之最新SVN版编译。经过精心配置,绿色、安装后直接可使用。可以通过此版本了解MinGW 4.4对C++0x的支持,可以...
面向对象编程:C++与Java比较教程 英文版的精简缩略版,方便pad、手机上阅读 Chapter 1 - Why OO Programming—Some Parallels with Things at Large Chapter 2 - Baby Steps Chapter 3 - The Notion of a Class and...
电子科技大学CPU设计:精简指令集(RISC)32位单周期cpu设计.pdf电子科技大学CPU设计:精简指令集(RISC)32位单周期cpu设计.pdf电子科技大学CPU设计:精简指令集(RISC)32位单周期cpu设计.pdf电子科技大学CPU设计:精简...
JAVA下载远程文件到本地的最精简代码,就一行代码,不信自己看,而且是官方提供,绝对适合你,一个远程URL,一个本地路径,文件就在你的电脑上了
精简博客-精简博客系统-精简博客系统源码-精简博客管理系统-精简博客管理系统java代码-精简博客系统设计与实现-基于springboot的精简博客系统-基于Web的精简博客系统设计与实现-精简博客网站-精简博客网站代码-精简...
java2精简教程,对java爱好者用处颇丰
精简博客-精简博客系统-精简博客系统源码-精简博客管理系统-精简博客管理系统java代码-精简博客系统设计与实现-基于springboot的精简博客系统-基于Web的精简博客系统设计与实现-精简博客网站-精简博客网站代码-精简...
JRE 1.8
② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDEA、JDK、Maven、Mysql ⑥ JDK版本:JDK1.8 ⑦ Maven包:Maven3.6 ⑧ 数据库:mysql 5.7 ⑨ 服务平台:Tomcat 8.0/9.0 ⑩ 数据库工具:SQLyog...
实用程序精简版Java utils。
所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java程序跑起来(JET之类转Win32编译的方式愚以为不如直接写C++程序,...
Java8新特性之精简的JRE详解_动力节点Java学院,动力节点口口相传的Java黄埔军校
Java之SSH深入浅出——精简剖析
这是一款基于java SSH框架的JAR包。使用它就搭好了整个框架!!