一个简单的JAVA线程池(只是用实验)
2007-08-20 12:01
696 查看
package myTest_EA;
import java.util.*;
public class ThreadPool extends Thread
...{
/** *//**
* @param args
*/
//pool是作业数
private List pool;
public ThreadPool(List pool)
...{
this.pool = pool ;
}
public void run()
...{
for(int i = 0; i < 3; i++)
...{
synchronized(pool)
...{
while(pool.isEmpty())
...{
try
...{
System.out.println( " thread name:" + this.getName() + " pool.wait()");
pool.wait();
}
catch(InterruptedException ex)
...{
}
}
pool.remove(pool.size() - 1);
System.out.println(" pool.size()" + pool.size() + " thread name:" + this.getName());
}
}
}
public final static int THREAD_COUNT = 5;
public static void main(String[] args)
...{
// TODO Auto-generated method stub
Vector pool = new Vector();
ThreadPool[] threadPool = new ThreadPool[THREAD_COUNT];
System.out.println("a");
System.out.println(threadPool.length);
for(int i = 0; i < threadPool.length; i++)
...{
threadPool[i] = new ThreadPool(pool);
threadPool[i].start();
}
System.out.println("b");
for(int i = 0; i < 10; i++)
...{
synchronized(pool)
...{
System.out.println(" " + i + " " );
pool.add(0,"bbbbbbbbbb");
/**//*pool.add(1,"ccc");
pool.add(2,"dd");
pool.add(3,"e");
pool.add(4,"ee");*/
//pool.add(5,"f");
pool.notifyAll();
System.out.println("pool.size:" + pool.size() );
System.out.println("threadPool:" + threadPool.length );
}
}
/**//*for(int i = 0; i < threadPool.length; i++)
{
threadPool[i].interrupt();
}*/
}
}
当程序中还有线程处于wait()状态时,程序不会自动退出(未完待续,代码会帖上改进后的)
相关文章推荐
- 一个简单的实验,Java数组遍历
- 一个简单的java线程池实现
- 一个简单的线程池实现(java版)
- Java实现一个简单的线程池
- Java--第十三周实验--任务0--编写一个简单的Java应用程序
- 【从0到1学习Java线程池】一个Java线程池的简单实现
- 【java】一个简单的线程池
- 计算机网络实验,JAVA实现一个简单GBN协议,模拟引入数据包的丢失,验证协议的有效性
- 一个简单的JAVA线程池实例
- 利用java基础写的一个简单的小游戏,没有UI界面,只是涉及到类的封装,方法的调用,方便日后复习用
- 一个简单的线程池(仿java的ScheduledFuture)
- java线程池学习(二) —— 实现一个简单的线程池
- 一个简单的线程池实现(java版)
- java 一个简单的线程池
- 一个简单的线程池实现(java版)
- Java: 动手写一个简单的线程池
- 一个简单的线程池实现(java版)
- 一个简单的java线程池
- 一个简单的线程池实现(java版)
- 一个简单的线程池实现(java版)