java多线程---------java.util.concurrent并发包----------ThreadPoolExecutor

ThreadPoolExecutor线程池

一、三个构造方法

  ThreadPoolExecutor(int corePoolSize,int MaxmumPoolSize,long KeepAliveTime,,TimeUnit  unit,BolokingQueue<Runnable> workQueue)

  ThreadPoolExecutor(int corePoolSize,int MaxmumPoolSize,long KeepAliveTime,,TimeUnit  unit,BolokingQueue<Runnable> workQueue,RejectExceptionHandler handler)

  ThreadPoolExecutor(int corePoolSize,int MaxmumPoolSize,long KeepAliveTime,,TimeUnit  unit,BolokingQueue<Runnable> workQueue,ThreadFactory threadFactory)

  ThreadPoolExecutor(int corePoolSize,int MaxmumPoolSize,long KeepAliveTime,,TimeUnit  unit,BolokingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejecExceptiontHandler handler,)

  标注

  1、CorePoolSize  线程池的基本大小

  2、MaxmunPoolSize  线程池最大数量

  3、KeepAliveTime  线程活动保持时间

  4、BlokingQueue 任务队列  (ArrayBlokingQueue   LinkedBlokingQueue  synchronousQueue  PriorityBlokingQueue)

  5、RejectExceptionHandler  饱和策略    (AbortPlicy  CallerRunsPolicy DiscardOldestPolicy  DiscardPolicy)

  6、ThreadFactory

  

原文地址:https://www.cnblogs.com/hanxue112253/p/9539621.html

时间: 2024-10-06 15:04:03

java多线程---------java.util.concurrent并发包----------ThreadPoolExecutor的相关文章

Java学习笔记—多线程(java.util.concurrent并发包概括,转载)

一.描述线程的类:Runable和Thread都属于java.lang包 二.内置锁synchronized属于jvm关键字,内置条件队列操作接口Object.wait()/notify()/notifyAll()属于java.lang包 二.提供内存可见性和防止指令重排的volatile属于jvm关键字 四.而java.util.concurrent包(J.U.C)中包含的是java并发编程中有用的一些工具类,包括几个部分: 1.locks部分:包含在java.util.concurrent.

java.util.concurrent并发包诸类概览

java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-level utilities that provide functionality commonly needed in concurrent programs. ”.作者是大名鼎鼎的Doug Lea,这个包的前身可以在这里找到,它最好的文档就是系统的API手册. 当然,这里参考的concurrent包

「java.util.concurrent并发包」之 ThreadPool

一 异步用new Thread? 大些的"low"!! new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 你还在上面这么用吗,太low 了.弊端多多: 1.  每次new Thread新建对象性能差. 2. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom. 3. 缺乏更多功能,如定

Java多线程-Java多线程概述

第一章 Java多线程概述 线程的启动 线程的暂停 线程的优先级 线程安全相关问题 1.1 进程与线程 进程:可以将运行在内存中的程序(如exe文件)理解为进程,进程是受操作系统管理的基本的运行单元. 线程:可以理解为进程中独立运行的子任务.如果QQ.exe运行时的好友视频线程.下载文件线程.数据传输线程.发送消息线程等. 使用多线程可以更好的利用计算机的资源如CPU.线程被调用的时机是随机的. 1.2 Java多线程实现方式 1.2.1 继承Thread类 public class Threa

「java.util.concurrent并发包」之 ReentrantReadWriteLock

一 引言 在多线程的环境下,对同一份数据进行读写,会涉及到线程安全的问题.比如在一个线程读取数据的时候,另外一个线程在写数据,而导致前后数据的不一致性:一个线程在写数据的时候,另一个线程也在写,同样也会导致线程前后看到的数据的不一致性.这时候可以在读写方法中加入互斥锁,任何时候只能允许一个线程的一个读或写操作,而不允许其他线程的读或写操作,这样是可以解决这样以上的问题,但是效率却大打折扣了.因为在真实的业务场景中,一份数据,读取数据的操作次数通常高于写入数据的操作,而线程与线程间的读读操作是不涉

java——多线程管理(concurrent包)

先上两张图,左边一个是concurrent包下的所有接口,右边是该包下的所有类,其实我们经常用到的接口和类都是少数的,接下来将具体介绍. 1. 常用的接口 Callable: 一个带有返回值的线程接口 Future:用来接收返回值的一个泛型的接口,提供了cancle终止线程的操作 Executor:具体Runnable任务的执行者 ExecutorService:一个线程池的管理者,可以对Runnable和Callable任务进行调度 BlockingQueue:阻塞队列 2. 常用的类 (1)

Java多线程-Java内存模型

以下内容转自http://ifeve.com/java-memory-model-6/: Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的.Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型. 如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的.Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量. 原始的Java内存模型存在一些不足,因此Java内存模型在

Java多线程-Java同步块

以下内容转自http://ifeve.com/synchronized-blocks/: Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静态方法同步 实例方法中同步块 静态方法中同步块 Java同步示例 Java 同步关键字(synchronized) Java中的同步块用synchronized标记.同步块在Java中是同步在某个对象上.所有同

java多线程 ThreadPoolExecutor 策略的坑

无论是使用jdk的线程池ThreadPoolExecutor 还是spring的线程池ThreadPoolTaskExecutor 都会使用到一个阻塞队列来进行存储线程任务. 当线程不够用时,则将后续的任务暂存到 阻塞队列中,等待有空闲线程来进行. 当这个阻塞队列满了的时候,会出现两种情况 正在运行的线程数量小于 maximumPoolSize,那么还是要创建线程运行这个任务: 正在运行的线程数量大于或等于 maximumPoolSize,那么线程池会通过一个策略进行对后续的任务进行处理. 四种