java.util.concurrent.Executors 类

聊聊高并发(四十四)解析java.util.concurrent各个组件(二十) Executors工厂类 Executor框架为了更方便使用,提供了Executors这个工厂类,通过一系列的静态工厂方法,可以快速地创建相应的Executor实例。 只有一个nThreads参数的newFixedThreadPool方法会创建一个ThreadPoolExecutor,corePoolSize和maximumPoolSize都是nThreads,并且keepAliveTime为0表示不会设置过期时 阅读详情

java.util.concurrent.Executors 类

原创  2013年06月28日 17:37:04

此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:

  • 创建并返回设置有常用配置字符串的 ExecutorService 的方法。
  • 创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
  • 创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
  • 创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
  • 创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
从一下关键类可以看出,Executors 这个工具类的作用是非常大的。建立threadpool,建立threadFactory等都最好通过此类。


一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。

public interface ThreadFactory

根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类、属性等等。

此接口最简单的实现就是:

 class SimpleThreadFactory implements ThreadFactory {
   public Thread newThread(Runnable r) {
     return new Thread(r);
   }
 }
 
Executors.defaultThreadFactory() 方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。


ThreadPoolExecutor

个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。

线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数。

为了便于跨大量上下文使用,此类提供了很多可调整的参数和扩展钩子 (hook)。但是,强烈建议程序员使用较为方便的 Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。否则,在手动配置和调整此类时,必须遵循一定的原则。


【文献阅读:信道估计】Deep Residual Learning Meets OFDM Channel Estimation 基于深度学习的信道估计技术 阅读详情

相关推荐

从零开始掌握Python机器学习:七步教程 基础篇

前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后...

hcgx2018的博客 1613

java.util.concurrent.Executors详解

Class Executors API Factory and utility methods for Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable classes defined in this package. This class supports the following kinds of methods: Methods that create and return an Ex

花木兰 1342

Linux显卡管理避坑指南:为什么Xorg总是占用你的NVIDIA GPU?

本文深入解析了在Linux系统上,尤其是双显卡笔记本中,Xorg显示服务器进程占用NVIDIA GPU的根本原因。文章从Xorg的驱动加载机制和NVIDIA驱动的独占性入手,详细对比了禁用配置文件、手动配置xorg.conf、使用官方PRIME方案以及切换到Wayland等主流解决方案的优缺点与适用场景,旨在帮助用户有效释放GPU资源,确保深度学习、游戏等计算任务能独占显卡性能。

xgboost6farmer的博客 268

java.util.concurrent 之Executors

java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent. Executors 这三者均是 Java Executor 框架的一部分,用来提供线程池的功能。因为创建和管理线程非常心累,并且操作系统通常对线程数有限制,所以建议使用线程池来并发执行任务,而不是每次请求进来时创建

sun 2308

Altium Designer实战:手把手教你设计智能车竞赛疯狂电路组赛道(附封装库)

本文详细介绍了使用Altium Designer软件进行智能车竞赛“疯狂电路”组赛道设计的全流程实战指南。从理解比赛规则、搭建设计环境、创建专用元器件封装库,到电路布局、路径规划及设计输出验证,手把手教你高效完成符合计分标准的赛道图纸设计,并附上实用的封装库管理方法。

alice7model的博客 1321

rk3568 点亮双LVDS 屏

承接文章《rk3568点亮LCD(lvds)》中仅仅只能使用亮单LVDS;经过厂商的努力,陆续发布新补丁。目前支持双lvds显示,缺憾是需要自己额外移植相关补丁。受限于通信频率和VOP编码能力,支持最大分辨仍然是1920x1080、60fps。

weixin_35723192的博客 3008

(三)java.util.concurrent - Java 并发工具包 ---Executors封装的4种常见的功能型线程池

前言:熟悉Java多线程编程的同学都知道,当我们显示创建线程过多时,因为每个线程创建后,都需要占用内存和资源,容易引发内存溢出,因此我们就有必要使用线程池的技术了。Java concurrent并发包中给我们提供了Executors,Executors已经为我们封装好了4种常见的功能线程池。 那么为什么我们使用线程池呢?总体来说线程池有如下优势: ①降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 ②提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行...

tunmengsmile的博客 450

01 - 什么是SVM

摘要:SVM(共享虚拟内存)技术使CPU和GPU能共享同一虚拟地址空间,简化异构计算编程。传统模型需手动管理CPU/GPU内存和拷贝数据,而SVM允许直接传递指针,自动处理页面迁移和一致性维护。其核心包括统一地址空间、按需迁移、页面故障处理和一致性管理,显著降低编程复杂度并提升性能。通过HMM框架、MMU通知和GPU页面异常等机制实现高效内存共享,支持复杂数据结构,为异构计算带来便利。

图形/计算GPU的驱动与虚拟化技术分享园地 3132

java.util.concurrent.Executor是干什么用的

java.util.concurrent.Executor 是 Java 并发包中的一个接口,它的主要作用是提供一个用于执行任务的机制。它简化了多线程编程,允许开发者管理线程池、任务调度等方面的复杂性,而无需直接操作 Thread 类。

weixin_44594317的博客 1496

瑞芯微RV1126部署YOLOv8全流程:环境搭建、pt-onnx-rknn模型转换、C++推理代码、错误解决、优化、交叉编译第三方库

瑞芯微RV1126部署YOLOv8全流程:环境搭建、pt-onnx-rknn模型转换、C++推理代码、错误解决、优化、交叉编译第三方库

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3106

在时间轴上联动多张内表:ABAP 的 PROVIDE ... ENDPROVIDE 区间联动迭代实战

PROVIDE 是 ABAP 中处理有效期区间数据的强大工具,它能自动将多张内表按时间维度切片并联合处理。其核心功能包括:指定区间边界字段(BOUNDS),定义外部总区间(BETWEEN),并通过工作区和标志位(VALID)标识每张表在当前子区间是否生效。该语法特别适合 HR 信息类型等有效期数据,能避免手动处理区间重叠、排序和空档等问题。使用时需注意字段投影(FIELDS)限制、工作区只读原则,以及异常处理(如区间重叠或未排序)。典型应用场景包括员工调岗记录、价格有效期管理等需要时间轴联动的业务逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1671

java.util.concurrent.Executor、ExecutorService、ThreadPoolExecutor、Executors,ThreadFactory

一、java.util.concurrent.Executor 一个对象执行提交 Runnable任务; Executor通常不是显式创建线程; /** * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling * thread, at the discretion o...

ScorpC的博客 724

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

简述java.util.concurrent中Executors类的某些静态工场方法

[size=large]1.[color=red]newFixedThreadPool()[/color]-创建一个定长的线程池,每当提交一个任务就创建一个线程,直到达到池的最大长度,这时线程池就会保持长度不在变化(如果一个线程由于非预期的Exception而结束,线程池会补充一个新的线程)。 2.[color=red]newCachedThreadPool()[/color]-创建一个可缓冲的...

只想靠两手,向理想挥手 184

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java多线程:java.util.concurrent包下的类

java.util.concurrent 是在并发编程中很常用的实用工具类,称为JUC。 注意:在java.util下的集合都是发生fail-fast,而在java.util.concurrent下的发生的都是fail-safe。 1.线程池相关类 2.阻塞队列相关类 3. Future相关类 4.ConcurrentMap类,代替HashMap的线程安全类 5.其他类 ...

starbxx的博客 847

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android线程池(五)Executors类源码解析

概要 // 每次只执行一个线程任务的线程池 ExecutorService singleTaskExecutor = Executors.newSingleThreadExecutor();可以看出,ThreadPoolExecutor与Executors类关系是非常密切的。在开发并发程序时,我们可能或多或少都要用到线程池来复用线程以达到较高的性能,但是我们自己写的线程

扣子Coze大师班 696

Executors

在Java5中,需要了解的是java.util.concurrent.Executors类的API,这个类提供大量创建连接池的静态方法。 1.固定大小的线程池,newFixedThreadPool   public class Test { public static void main(String[] args) { // 创建一个可重用固定线程数的线程...

金溪的博客 404

jdk1.5 多线程

Java 5.0里新加入了三个多线程包:java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks. java.util.concurrent包含了常用的多线程工具,是新的多线程工具的主体。 java.util.concurrent.atomic包含了不用加锁情况下就能改变值的原子变量,比如说Atomi...

chengui_vip的博客 276

java并发编程——Executors

  转载:http://blog.csdn.net/hudashi/article/details/7012204 java.util.concurrent类 Executorsjava.lang.Object  继承者 java.util.concurrent.Executors此类是个工具类,它提供对Executor、ExecutorService、ScheduledExecutorS...

iteye_3471的博客 145

Java Executors(线程池)

Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。   有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。...

peizhiinfo 66

Java Concurrency - java.util.concurrent API Class Diagram

摘自:www.uml-diagrams.org Here we provide several UML class diagrams for the Java™ 7 java.util.concurrent package. Several java.util.concurrent.* packages introduced with version 5.0 of the Java pl...

weixin_30908941的博客 214

java concurrency api,Java Concurrency - java.util.concurrent API Class Diagram

Here we provide several UML class diagrams for the Java™ 7 java.util.concurrent package. Several java.util.concurrent.* packages introduced with version 5.0 of the Java platform added high-level concu...

weixin_39755952的博客 91
上一篇: Spring注解@Resource和@Autowired区别对比
下一篇: ExecutorService中submit和execute的区别
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值