一个简单的JAVA线程池(只是用实验)
来源:互联网 发布:数据库存 pdf 编辑:程序博客网 时间:2024/05/17 23:47
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();
}*/
}
}
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实现一个简单的线程池
- 一个简单的java线程池实现
- 一个简单的java线程池
- 一个简单的实验,Java数组遍历
- 我只是一个线程
- 一个简单的线程池(仿java的ScheduledFuture)
- 写的一个简单的java线程池
- 一个简单的线程池
- 一个简单的线程池
- 一个简单的线程池
- 一个简单的线程池
- 一个简单的线程池
- 一个简单的线程池
- 一个简单的线程池
- 一位软件设计师对程序员的忠告
- 代码好差
- 关于自定义PropertyGrid
- blog start & do just
- 关于hl2,source引擎,超强的文章
- 一个简单的JAVA线程池(只是用实验)
- 序列图中的分支和循环画法
- ArcObjects二次开发的license验证问题
- 在CSDN提问的一些建议
- Python中__name__ == "__main__"语句的作用
- Solaris常用ssh工具功能对比总结
- 工作流普及风暴—基础概念篇
- Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类
- 被中国人误传了数千年的七句话 作者:一步两搭桥 转自西陆社区(www.xilu.com)