线程池原理Java

本文介绍了线程池的基本概念,包括线程池的核心组件、执行异步任务的方法及线程创建过程,详细阐述了线程池的工作原理,旨在帮助初学者理解线程池的高效管理和任务调度。
 1 public class ThreadPool {
 2         int maxCount = 3;
 3         AtomicInteger count =new AtomicInteger(0);// 当前开的线程数  count=0
 4         LinkedList<Runnable> runnables = new LinkedList<Runnable>();
 5 
 6         public void execute(Runnable runnable) {
 7             runnables.add(runnable);
 8             if(count.incrementAndGet()<=3){
 9                 createThread();
10             }
11         }
12         private void createThread() {
13             new Thread() {
14                 @Override
15                 public void run() {
16                     super.run();
17                     while (true) {
18                         // 取出来一个异步任务
19                         if (runnables.size() > 0) {
20                             Runnable remove = runnables.remove(0);
21                             if (remove != null) {
22                                 remove.run();
23                             }
24                         }else{
25                             //  等待状态   wake();
26                         }
27                     }
28                 }
29             }.start();
30         }
31     }

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

说明如下:

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

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

createThread方法就是线程创建的方法,由execute方法调用,其算法是,直接创建一个新的线程,并且,一旦创建,就不需关闭,无限循环执行异步任务队列总的runnable任务;

 

转载于:https://www.cnblogs.com/lude313/p/4793080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值