java 线程管理Executors

(1) newCachedThreadPool
创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。

线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。

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

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

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

时间: 2025-01-06 08:14:55

java 线程管理Executors的相关文章

java线程管理

java线程管理 参见: http://harmony.apache.org/subcomponents/drlvm/TM.html 1. 修订历史 2. 关于本文档 2.1. 目的 2.2. 面向的读者 2.3. 文档约定 2.4. 文档使用 3. 概览 3.1. 主要特点 3.2. VM中的线程管理器 3.3. 可移植性 4. 体系结构 4.1. 对外接口 4.1.1. Native 接口 4.1.2. Java* 接口 4.2. 数据结构 4.3. 线程控制结构 4.3.1.Native

Java线程池Executors.newFixedThreadPool原理解析

从事Java多线程开发的程序员来说,了解Java的线程池实现原理是必不可少的,以下将会结合Java线程池代码来说明它的实现原理,首先,我们要思考: 线程池的表现形式 线程池里面的线程什么时候创建 线程池里面的线程什么时候结束或者该不该结束 线程池的实现原理 说道Java线程池就不得不说ExecutorService接口和Executors类了,从源码上来看Executors类里面封装了线程池的创建,并且定义了各自不同的线程池类型,本文着重讲Executors这个类的newFixedThreadP

java 线程池管理类:Executors

java.util.concurrent类 Executors java.lang.Object   继承者 java.util.concurrent.Executors此类是个工具类,它提供对Executor.ExecutorService.ScheduledExecutorService.ThreadFactory 和 Callable 类的一些实用方法. 此类支持以下各种方法:    * 创建并返回设置有常用配置的ExecutorService的方法.    * 创建并返回设置有常用配置的

JAVA线程池 之 Executors (一)

一.背景 线程属于系统稀缺资源,在使用线程时,如果无限制创建线程,达到CPU高负荷时,会导致系统运行缓慢,更有甚者直接宕机. 在这样的基础上我们希望在使用线程时,竟可能使系统线程数处于一个可控范围,尽可能实现线程的重用. 二.Executors 分析 Executors 示例  DEMO /** * @author binH * @date 2018/01/24 */ package org.lsnbin.thread; import java.util.concurrent.ExecutorS

Java线程池:ExecutorService,Executors

简单的Java线程池可以从Executors.newFixedThreadPool( int n)获得.此方法返回一个线程容量为n的线程池.然后ExecutorService的execute执行之. 现给出一个示例. package zhangphil.executorservice; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ZhangPhil

Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

第一章 Thread导论 为何要用Thread ? 非阻塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ? Thread是所在主机执行的应用程序任务(task). 只有一个线程的例子: public class Factorial { public static void main(String[] args) { int n = 5; System.ou

java并发编程实战手册(一)线程管理

本文主要是以知识点的形式对java多线程进行了解,学习java多线程的基础,本文参考书籍<java并发编程实战手册>,若有兴趣想研究跟高级的多线程思想,可以阅读<java并发编程实战>. 1.线程的创建和运行 java线程的创建有三种方式,可能大部分人只知道常用的两种: 1.继承Thread类,并且覆盖run()方法. 2.创建一个实现Runnable接口的类.使用带参数的Thread构造器来创建Thread对象. 3.使用Callable与Future来创建启动线程 1.创建Ca

java线程池

1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 new Thread(new Runnable() { 2 3 @Override 4 public void run() { 5 // TODO Auto-generated method stub 6 } 7 }).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差. b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过

java线程池原理及实现方式

线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程 为什么要使用线程池 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.在一个 JVM 里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或"切换过度".为了防止资源不足,服务器应用程序需要一些办法来限制任何给定时刻处理的请求数目. 线程池组成部分 1.线程池管理器(ThreadPoolManager):用于创建并管理线程池,包括 创建线程池,销