美文网首页
Java多线程编程知识点系统梳理(4)

Java多线程编程知识点系统梳理(4)

作者: 捉影T_T900 | 来源:发表于2025-01-22 23:16 被阅读0次

java api 默认的4中创建线程池方法

1、ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
newCachedThreadPool.execute(new Runnable());

创建一个可缓存线程池,应用中存在的线程数可以无限大

2、ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(2);
newFixedThreadPool.execute(new Runnable());

创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

3、ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(2);
newScheduledThreadPool.schedule(new Runnable(),3, TimeUnit.SECONDS); // 延迟3秒执行runnable任务

创建一个定长线程池,支持定时及周期性任务执行。

4、ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
newSingleThreadExecutor.execute(new Runnable());

创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

ThreadPoolExecutor 七个参数的详细说明

ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,
                              RejectedExecutionHandler handler)

corePoolSize 核心线程数
maximumPoolSize 最大线程数
keepAliveTime 当线程数大于核心线程数,空闲线程等待新任务的最大等待时间,超过最大等待时间这个线程就会被终止
unit 等待时间的单位
workQueue 阻塞队列
threadFactory 生成线程的工厂
handler 任务拒绝策略

CallerRunsPolicy     在调用execute方法线程中执行这个任务
AbortPolicy              直接丢弃任务并抛出RejectedExecutionException异常。
DiscardPolicy          丢弃任务但不抛出异常
DiscardOldestPolicy     丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)

相关文章

  • Java多线程编程知识点系统梳理(3)

    一、锁的概述 (1)内部锁:synchronized关键字,通过指定对象作为监视对象(2)显式锁:Lock接口,R...

  • Java多线程编程知识点系统梳理(2)

    一、原子性 对于涉及共享变量访问的操作,若该操作从其执行线程以外的的任何线程来看是不可分割的,则认为是原子操作,说...

  • Java多线程编程知识点系统梳理(1)

    一、进程、线程、任务 1、进程是程序向操作系统申请资源(内存空间、文件句柄)的基本单位2、线程是进程中客独立运行的...

  • 线程

    Java 并发编程:线程池的使用 Java 并发编程:线程池的使用java 多线程核心技术梳理 (附源码) 本文对...

  • GCD-DISPATCH-多线程

    近期在梳理多线程的知识点,那就先把系统API全部重新看下. void dispatch_barrier_async...

  • java总结

    Java是一门面向对象编程语言. java知识点梳理 java面向对象的特点java面向对象的三个基本特性: 封...

  • 2018-10-16

    Java编程思想 1~12 java多线程编程核心技术 23~57

  • Java高并发程序设计1

    Java多线程一直是Java学习的重点与难点,本人今天重点学习Java高并发一书,对其中的知识点做一个梳理。 本文...

  • 美团十年,我总结的Java核心知识点pdf(Java岗),请查收

    Java核心知识点从多个知识点分析: 包括JVM,Java集合,Java多线程并发,Java基础,spring原理...

  • Java多线程-生产者和消费者

    标签(空格分隔): java thread 简介:随着操作系统的不断更新迭代,多线程编程已经变的十分常见,java...

网友评论

      本文标题:Java多线程编程知识点系统梳理(4)

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