美文网首页
线程池基础(一)

线程池基础(一)

作者: 小豆_1122 | 来源:发表于2020-03-23 15:39 被阅读0次

jdk 已经给提供了创建线程池的方法:


都是这个包下的

import java.util.concurrent.*;


//第一种创建固定线程池

ExecutorService executors1 =Executors.newFixedThreadPool(10);

//第二种创建一个线程的线程池

ExecutorService executors2= Executors.newSingleThreadExecutor();

//第三种创建一个没有容量限制的线程池

ExecutorService executors3= Executors.newCachedThreadPool();

//第四种 

ExecutorService executors4= Executors.newScheduledThreadPool(10);

关于此线程池

class Tempextends Thread {

public void run() {

System.out.println("run");

    }

}

public class ScheduledJob {

public static void main(String args[])throws Exception {

Temp command =new Temp();

        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        /**

        *  启动 5秒后 每1秒执行一次

        *

        */

        ScheduledFuture scheduleTask = scheduler.scheduleWithFixedDelay(command, 5, 1, TimeUnit.SECONDS);

    }

}

看底层源码回发现 其实都是

ThreadPoolExecutor 的实例实现而已.

自定义线程池

public ThreadPoolExecutor(int corePoolSize,

                          int maximumPoolSize,

                          long keepAliveTime,

                          TimeUnit unit,

                          BlockingQueue workQueue,

                          ThreadFactory threadFactory,

                          RejectedExecutionHandler handler)

int corePoolSize 核心线程数 --初始化的时候会创建这几个线程


 int maximumPoolSize  最大线程数 --核心线程已经占满,然后会创建新的线程.


long keepAliveTime 线程存活数字


 TimeUnit unit  线程存活数字的单位 


 BlockingQueue workQueue 当线程池中的线程都在使用时候,然后把新来的任务放到这个队列里等待执行.

ThreadFactory threadFactory : 创建线程工厂(一般用系统默认的就行)

RejectedExecutionHandler handler  这是意思是 当前的线程数量已经满了,而且 workQueue 也满了 然后执行拒绝来的任务.

相关文章

  • 多线程 | 4.线程池

    Java并发编程:线程池的使用 线程池基础 请求队列 线程池维护一定数量的线程,当线程池在运行状态的线程数量达上...

  • 线程池

    线程池种类 ThreadPoolExecutor 基础线程池 线程执行任务过程 当前执行线程数 < corePoo...

  • 线程池

    线程池基础概念 线程池是什么 线程池是一种基于池化思想的线程管理工具 线程池解决了哪些问题 降低资源消耗(操作系统...

  • Java-并发编程知识点总结

    目录: 线程基础 线程池 各种各样的锁 并发容器 原子类 Java 内存模型 线程协作 AQS 框架 一、线程基础...

  • Android中线程池的使用分析

    引言:说起线程池,学习过Java基础的同学估计都不陌生,Android中的线程池其实就是java的线程池。那么为什...

  • 线程池基础(一)

    jdk 已经给提供了创建线程池的方法: 都是这个包下的 import java.util.concurrent.*...

  • 线程池 - 基础

    corePollSize:核心线程数。在创建了线程池后,线程中没有任何线程,等到有任务到来时才创建线程去执行任务。...

  • [C# 线程处理系列]专题二:线程池中的工作者线程

    目录: 一、上节补充 二、CLR线程池基础 三、通过线程池的工作者线程实现异步 四、使用委托实现异步 五、任务 一...

  • 线程池源码解读

    一. 线程池基础 1. 线程池的作用主要有三个: (1)可以用来复用线程,降低因为频繁的创建和销毁线程的消耗; (...

  • 线程池

    线程池 时间 2018年6月13日 23:03:06;复习了一下基础的JAVA线程池知识 Single Threa...

网友评论

      本文标题:线程池基础(一)

      本文链接:https://www.haomeiwen.com/subject/akkwyhtx.html