您的位置:首页 > 编程语言 > Java开发

线程池原理Java

2015-09-08 22:13 639 查看
public class ThreadPool {
int maxCount = 3;
AtomicInteger count =new AtomicInteger(0);// 当前开的线程数  count=0
LinkedList<Runnable> runnables = new LinkedList<Runnable>();

public void execute(Runnable runnable) {
runnables.add(runnable);
if(count.incrementAndGet()<=3){
createThread();
}
}
private void createThread() {
new Thread() {
@Override
public void run() {
super.run();
while (true) {
// 取出来一个异步任务
if (runnables.size() > 0) {
Runnable remove = runnables.remove(0);
if (remove != null) {
remove.run();
}
}else{
//  等待状态   wake();
}
}
}
}.start();
}
}


代码简单表示了一下线程池的原理,供初学者参考。

说明如下:

runnables是一个异步任务的队列,

execute方法是执行异步任务的方法,由用户调用,其算法是,将所需要执行的异步任务添加到队列中,等待执行,然后如果需要就创建新的线程;

createThread方法就是线程创建的方法,由execute方法调用,其算法是,直接创建一个新的线程,并且,一旦创建,就不需关闭,无限循环执行异步任务队列总的runnable任务;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: