并发 - Executor框架

2019-04-23  本文已影响0人  康俊1024

概述

Java的线程既是工作单元,也是执行机制。从JDK 5开始,把工作单元与执行机制分离开来。工作单元包括Runnable和Callable,而执行机制由Executor框架提供。

Executor框架的结构与成员

结构

Executor框架的类和接口

成员

Executor框架的主要成员:ThreadPoolExecutor、ScheduledThreadPoolExecutor、Future接口 、Runnable接口、Callable接口和Executors。

  1. FixedThreadPool:FixedThreadPool适用于为了满足资源管理的需求,而需要限制当前线程数量的应用场景,它适用于负载比较重的服务器。
  2. SingleThreadExecutor:适用于需要保证顺序地执行各个任务;并且在任意时间点,不会有多个线程是活动的应用场景。(保证多线程顺序执行)
  3. CachedThreadPool:大小无界的线程池,适用于执行很多的短期异步任务的小程序,或者是负载较轻的服务器。
    注意:FixedThreadPool和SingleThreadExecutor使用无界队列LinkedBlockingQueue作为线程池的工作队列。 CachedThreadPool使用没有容量的SynchronousQueue作为线程池的工作队列。
  1. ScheduledThreadPoolExecutor:包含若干个线程的ScheduledThreadPoolExecutor。
    ScheduledThreadPoolExecutor适用于需要多个后台线程执行周期任务,同时为了满足资源管理的需求而需要限制后台线程的数量的应用场景。
  2. SingleThreadScheduledExecutor:只包含一个线程的ScheduledThreadPoolExecutor。
    SingleThreadScheduledExecutor适用于需要单个后台线程执行周期任务,同时需要保证顺序地执行各个任务的应用场景。

无界队列作为工作队列会对线程池带来哪些影响

FutureTask详解

每一个基于AQS实现的同步器都会包含两种类型的操作

上一篇 下一篇

猜你喜欢

热点阅读