首页 > 编程语言 > 详细

java-线程池

时间:2020-11-02 11:54:36      阅读:25      评论:0      收藏:0      [点我收藏+]

1)初识线程池:

根据系统自身的环境情况,有效的限制执行线程的数量,使得运行效果达到最佳。线程主要是通过控制执行的线程的数量,超出数量的线程排队等候,等待有任务执行完毕,再从队列最前面取出任务执行。

2)线程池作用:

减少创建和销毁线程的次数,每个工作线程可以多次使用

可根据系统情况调整执行的线程数量,防止消耗过多内存

3)使用

ExecutorService:线程池接口

ExecutorService pool = Executors.常见线程

eg:ExecutorService pool = Executors.newSingleThreadExecutor();

4)常见线程池

①newSingleThreadExecutor

单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务

②newFixedThreadExecutor(n)

固定数量的线程池,没提交一个任务就是一个线程,直到达到线程池的最大数量,然后后面进入等待队列直到前面的任务完成才继续执行

③newCacheThreadExecutor(推荐使用)

可缓存线程池,当线程池大小超过了处理任务所需的线程,那么就会回收部分空闲(一般是60秒无执行)的线程,当有任务来时,又智能的添加新线程来执行。

④newScheduleThreadExecutor

大小无限制的线程池,支持定时和周期性的执行线程

实例
public class MyThread extends Thread {

@Override

public void run() {
System.out.println(Thread.currentThread().getName()+"执行中。。。");
}
}

public class TestFixedThreadPool {

public static void main(String[] args) {

    ExecutorService pool = Executors.newFixedThreadPool(5);

    Thread t1 = new MyThread();
    Thread t2 = new MyThread();
    Thread t3 = new MyThread();
    Thread t4 = new MyThread();
    Thread t5 = new MyThread();
    pool.execute(t1);
    pool.execute(t2);
    pool.execute(t3);
    pool.execute(t4);
    pool.execute(t5);
    pool.shutdown();
}

}

java-线程池

原文:https://www.cnblogs.com/meteors/p/13913618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!