- 浏览: 800421 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
1、newCachedThreadPool
2、newFixedThreadPool
3、newScheduledThreadPool
4、newSingleThreadExecutor
package com.vxichina.cluster.persistence.thread.pool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 第一种线程池newCachedThreadPool * 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 * @author admin * */ public class ThreadPoolOne { public static void main(String[] args) { ExecutorService threadPool=Executors.newCachedThreadPool();//理论上有无限个线程,实际使用时会重复利用已有的空闲线程 //for #s for (int i = 0; i < 100; i++) { final int index=i; //System.out.println("for循环中index的值="+index); try { Thread.sleep(i*100);//触发操作系统立刻重新进行一次CPU竞争 } catch (InterruptedException e) { e.printStackTrace(); } threadPool.execute(new Runnable() { @Override public void run() { System.out.println("index的值="+index+", 当前线程:id="+Thread.currentThread().getId()+", name="+Thread.currentThread().getName()); } }); } //for #e } }
2、newFixedThreadPool
package com.vxichina.cluster.persistence.thread.pool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 第一种线程池newFixedThreadPool * 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 * @author admin * */ public class ThreadPoolTwo { public static void main(String[] args) { ExecutorService threadPool=Executors.newFixedThreadPool(3);//只设置3个线程 //for #s for (int i = 0; i < 1000; i++) { final int index=i; //System.out.println("for循环中index的值="+index); threadPool.execute(new Runnable() { @Override public void run() { System.out.println("index的值="+index+", 当前线程:id="+Thread.currentThread().getId()+", name="+Thread.currentThread().getName()); try { Thread.sleep(3000);//触发操作系统立刻重新进行一次CPU竞争 } catch (InterruptedException e) { e.printStackTrace(); } } }); } //for #e } }
3、newScheduledThreadPool
package com.vxichina.cluster.persistence.thread.pool; import java.util.Calendar; import java.util.Date; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * 第一种线程池newScheduledThreadPool * 创建一个定长线程池,支持定时及周期性任务执行。 * @author admin * */ public class ThreadPoolThree { public static void main(String[] args) { //ScheduledExecutorService比Timer更安全,功能更强大 ScheduledExecutorService threadPool=Executors.newScheduledThreadPool(3);//只设置3个线程 //#s threadPool.schedule(new Runnable() { @Override public void run() { System.out.println("我是延迟5秒后执行的哦"); } }, 5, TimeUnit.SECONDS);//表示延迟5秒执行 //#e //#s threadPool.scheduleAtFixedRate(new Runnable() { @Override public void run() { System.out.println("我是延迟5秒后每2秒执行一回"+Calendar.getInstance().getTime().getHours()+":"+Calendar.getInstance().getTime().getMinutes()+":"+Calendar.getInstance().getTime().getSeconds()); } }, 5, 2, TimeUnit.SECONDS);//延迟5秒后每2秒执行一次 //#e //#s threadPool.scheduleWithFixedDelay(new Runnable() { @Override public void run() { System.out.println("输出"+Calendar.getInstance().getTime().getHours()+":"+Calendar.getInstance().getTime().getMinutes()+":"+Calendar.getInstance().getTime().getSeconds()); } }, 2, 5, TimeUnit.SECONDS);//初始延迟2秒后面每个延迟5秒执行 //#e } }
4、newSingleThreadExecutor
package com.vxichina.cluster.persistence.thread.pool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 第一种线程池newSingleThreadExecutor * 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。 * @author admin * */ public class ThreadPoolFour { public static void main(String[] args) { ExecutorService threadPool=Executors.newSingleThreadExecutor();//单一线程,相当于顺序执行各个任务 //for #s for (int i = 0; i < 1000; i++) { final int index=i; threadPool.execute(new Runnable() { @Override public void run() { System.out.println("index的值="+index+", 当前线程:id="+Thread.currentThread().getId()+", name="+Thread.currentThread().getName()); try { Thread.sleep(1000);//触发操作系统立刻重新进行一次CPU竞争 } catch (Exception e) { e.printStackTrace(); } } }); } //for #e } }
发表评论
-
负载均衡
2020-08-27 23:32 291基于nginx配置负载均衡 参考 - - Nginx + Sp ... -
HttpAsyncClient-异步开源框架
2018-06-27 13:09 984引用参考 --了解HttpAsyncClient https: ... -
Callable接口、Future接口
2017-09-11 14:20 461参考博客: --java.util.concurrent 之 ... -
java线程优化方法或思路、高并发、大数据量
2017-09-04 19:17 386一、多线程 【生产问题】 某个接口xServic ... -
java.util.concurrent相关-ThreadPoolExecutor
2017-02-22 16:49 395引用参考: --Java ThreadPoolExecutor ... -
高可用 高并发 java并发相关 ThreadLocal、Volatile
2016-11-23 10:30 439参考博客: --互联网高可用架构技术实践 http://www ... -
java 多线程 AtomicInteger原子变量
2016-03-30 11:22 420/** * AtomicInteger * @au ... -
Thread类、Runnable接口、ThreadLocal
2016-03-29 10:40 1032--引用参考 https://blog.csdn.net/u0 ... -
socket通信例子_服务端写客户端读多线程写法
2016-03-16 15:06 4791、主程序 /** * 主程 ... -
java socket通信编程
2016-03-15 13:22 346http://haohaoxuexi.iteye.com/bl ... -
jvm_多线程_高并发
2013-10-17 14:34 695参考blog --Java中的多线程你只要看这一篇就够了 ht ... -
多线程数据同步之synchronized同步方法-多线程访问临界资源
2013-10-17 10:12 1310package com.tools; /** * 同步方 ... -
jdk+eclipse+adt+sdk+avd的Android环境搭建
2013-03-19 11:28 1070参照: http://mobile.51cto.com/a ... -
Synchronized理解
2012-07-18 15:30 964synchronized 的这个关键字,这个关键字用得比较少, ...
相关推荐
Java线程池是Java并发编程中的重要组成部分,它在多线程环境下的资源管理与任务调度方面发挥着关键作用。本资料"Java四种线程池的使用共6页.pdf.zip"详细介绍了Java中四种主要的线程池实现,旨在帮助开发者更有效地...
### Java 四种线程池的详细介绍 #### 1. `newCachedThreadPool`:创建一个可缓存线程池 - **定义与特点**: - `newCachedThreadPool` 创建了一个可缓存线程池,它能够根据当前的处理需求灵活调整线程数量。 - 当...
本文将深入探讨四种常见的Java线程池实例:`ThreadPoolExecutor`、`Executors`提供的固定线程池、单线程池和定时线程池。 1. **ThreadPoolExecutor**: 这是最基础也是最灵活的线程池实现,可以通过`new ...
Java四种线程池的使用详解 Java四种线程池的使用详解是Java多线程编程中的一种重要概念。Java通过Executors提供四种线程池,分别为newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool和...
简单的线程池程序+中文文档 包结构: com.tangkai.threadpool --SimpleThread.java 工作线程 --TestThreadPool.java 程序入口 --ThreadPoolManager.java 线程池管理类
Java的`java.util.concurrent`包中提供了`ExecutorService`的实现类,特别是通过`Executors`工厂类可以方便地创建四种类型的线程池,分别是`newCachedThreadPool`、`newFixedThreadPool`、`newScheduledThreadPool` ...
Java 实现通用线程池 Java 实现通用线程池是指使用 Java 语言编写一个通用的线程池,线程池通俗的描述就是预先创建若干空闲线程,等到需要用多线程去处理事务的时候去唤醒某些空闲线程执行处理任务,这样就省去了...
在Java中,线程池的实现类主要包含以下四种: 1. **`newCachedThreadPool`**: 这种类型的线程池会根据需要创建新线程,并且能够重用已有的线程。如果线程在60秒内没有被使用,那么线程会被终止并从缓存中移除,...
Java线程池是一种高效管理线程资源的方式,它允许开发者预先配置一组线程,以便在需要时复用,而不是每次需要执行任务时都创建新的线程。线程池的顶级接口`Executor`定义了调度任务的基本操作,而实际的线程池实现由...
标题中的“Java实现的线程池、消息队列功能”是指在Java编程中,如何利用编程技术实现线程池和消息队列这两种重要的并发处理机制。线程池和消息队列是解决多线程环境下资源管理和任务调度的有效手段,它们在高并发、...
java 4种线程池.jpg
Java 中的线程池是一种高效的并发编程机制,它可以将任务提交给线程池,并由线程池中的线程执行任务, Java 提供了四种线程池类型,分别是 newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool 和 ...
线程池是一种多线程处理形式,预先创建了若干个线程,当有任务需要执行时,会从线程池中取出一个线程来执行任务,任务执行完毕后,线程返回线程池中等待新的任务。这种机制避免了频繁创建和销毁线程带来的性能开销,...
java线程池是一种高效的并发编程技术,可以帮助开发者更好地管理线程资源,提高系统的性能和可靠性。然而,在使用java线程池时,一个常见的问题是:使用完线程池后到底要不要关闭?本文将通过实例代码和详细解释,...
在Android和Java应用开发中,线程池是一种重要的并发编程工具,它可以帮助我们高效地管理后台任务,提高系统的响应速度和资源利用率。本Demo主要展示了如何在Java或Android环境中使用线程池,以下是对相关知识点的...
本文旨在使用Java语言编写一个通用的线程池。当需要使用线程池处理事务时,只需按照指定规范封装好事务处理对象,然后用已有的线程池对象去自动选择空 闲线程自动调用事务处理对象即可。并实现线程池的动态修改...
"Java 线程池完整代码解析" Java 线程池是 Java 语言中的一个重要概念,它允许开发者创建和管理多个线程,以提高程序的并发性和性能。下面是对给定文件的解析,包括 title、description、标签和部分内容的解析。 ...
Java8并行流中自定义线程池操作示例 Java8并行流中自定义线程池操作示例主要介绍了Java8并行流中自定义线程池操作,结合实例形式分析了并行流的相关概念、定义及自定义线程池的相关操作技巧。 1. 概览 Java8引入了...
Java线程池是一种高效管理线程的技术,它允许开发者预定义一组线程,根据任务的需要灵活调度,而不是每次需要执行任务时都创建新的线程。这种设计模式大大提高了系统的性能,减少了系统资源的消耗,特别是在高并发...
是一个java在进行socket编程时,关于线程池的介绍,有代码和例子