多线程之线程池Executor应用
JDK1.5之后,提供了自带的线程池,以便我们更好的处理线程并发问题。
Executor类给我提供了多个线程池创建的方式:
创建固定的线程池 Executors.newFixedThreadPool(2)
创建可变的缓冲线程池 Executors.newCachedThreadPool()
创建单一的线程池 Executors.newSingleThreadExecutor()
先面试线程池的基本操作:
package andy.thread.test;import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;/*** @author Zhang,Tianyou* @version 2014年11月8日 下午6:10:42*/public class ThreadPoolTest {public static void main(String[] args) {// 创建一个固定线程数的线程池ExecutorService threadPool = Executors.newFixedThreadPool(3);// 创建一个可根据需要创建新线程的缓冲线程池// ExecutorService threadPool = Executors.newCachedThreadPool();// 创建一个单一的线程池 线程死掉后将重新启动// ExecutorService threadPool = Executors.newSingleThreadExecutor();for (int i = 0; i < 10; i++) {final int task = i;threadPool.execute(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubfor (int j = 0; j <= 5; j++) {try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(Thread.currentThread().getName()+ " is looping of " + j + " from task " + task);}}});}// 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。threadPool.shutdown();// 试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。// threadPool.shutdownNow();//执行线程的调度 6秒后执行 以后每2秒执行一次Executors.newScheduledThreadPool(3).scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {System.out.println("调度了。。");}}, 6, 2, TimeUnit.SECONDS);}}
详细可看jdk相关解释。
多线程之线程池Executor应用相关推荐
- Java的多线程和线程池的使用,你真的清楚了吗?
Java的多线程和线程池的使用 多线程大大提高程序运行效率,我们在开发过程中经常会开启一个线程来执行一些费时的任务.开启一个线程有4种方式,在下面的文章我将详细的去讲解. 继承Thread 继承Thr ...
- 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目
阿里的面试官问了个问题,如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办, 答案: 当一个任务通过execute(Runnable)方法欲添加到线程池时: ...
- Java多线程之线程池详解
Java多线程之线程池详解 目录: 线程池使用及优势 线程池3个常用方式 线程池7大参数深入介绍 线程池底层工作原理 1. 线程池使用及优势 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务 ...
- pool python 传参数_Python-爬虫-多线程、线程池模拟(urllib、requests、UserAgent、超时等)...
接着之前的MonkeyLei:Python-爬取页面内容(涉及urllib.requests.UserAgent.Json等) 继续练习下多线程,线程池模拟.. 我想这样: 1. 创建一个线程池,线程 ...
- java 多线程使用线程池_Java多线程:如何开始使用线程
java 多线程使用线程池 什么是线程? (What is a Thread?) A thread is a lightweight process. Any process can have mul ...
- java多线程之线程池简介
前言 池化技术已经屡见不鲜了,比如数据库连接池,大家的项目中应该也用到了线程池.池化技术的好处:降低资源的消耗,提高响应速度,提高线程的可管理性.本篇主要是和大家一起分析下线程池的架构和它的工作流程. ...
- java多线程及线程池使用
Java多线程及线程池的使用 Java多线程 一.Java多线程涉及的包和类 二.Java创建多线程的方式 三.Java线程池 1. 创建线程池ThreadPoolExecutor的7个参数 2. 线 ...
- 面试必问:多线程与线程池
前言 前几章都在讲一些锁的使用和原理,主要是为了保证多线程情况下变量的原子性,但这并不是说多线程不好,合理利用还是有好处的.至于什么好处,看下面内容就懂了,先打个比方吧(谁叫比方,上来挨打):假如你体 ...
- 用10086客服热线理解Java高级多线程之线程池
Java高级多线程之线程池 客服热线案例 引入线程池 1.线程的概念 2.线程池的作用: 获取线程池 1.常用的线程池接口和类 2.代码案例 Callable接口 1.概念简述 2.应用场景 3.方法 ...
- java多线程和线程池
目录 零.java线程理解 0.1 两种线程模型 0.1.1 用户级线程 ULT 0.1.2 内核级线程 KLT--JAVA虚拟机使用的线程模型(KLT) 0.2 java线程与系统内核线程 0.3 ...
最新文章
- transmission Linux(debian)下的BT下载客户端安装
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)
- 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
- 六角填数---第五届蓝桥杯
- jaxb util_JAXB自定义绑定– Java.util.Date / Spring 3序列化
- 谈谈数次生信线下活动的收获和体会
- phpcms前台注入导致任意文件读取漏洞
- 没有工厂模式(工厂模式2)
- onethink中的用户登录session签名
- 用Notepad2替换Windows自带记事本
- MUSIC算法及MATLAB实现
- netdraw绘制网络结构图
- 找不到MSVCR120.dll,无法执行代码 ——问题解决方案
- Beyond Compare 30天评估期结束解决办法
- epcs1s是epcs1系列的么_串行FLASH配置芯片(EPCS1或EPCS4)数据手册.pdf
- 夏季繁华系列||妆面照欣赏
- Java如何实现定时任务——从某一天起每天定点执行
- [OpenGL] 几何着色器
- 首次!TinyML低功耗边缘侧机器学习技术论坛-亚洲分会来到中国!
- 下拉列表(select标签)
热门文章
- 机器学习- 吴恩达Andrew Ng Week8 知识总结 Dimensionality Reduction
- Python数据结构,线性结构:栈、队列、双端队列、列表
- 用tensorflow实现矩阵分解
- 使用winedt写论文遇到的一些小问题
- 多元线性回归--machine learning
- html页面显示代码插件,客户端显示web网页支持html5的第三方内核插件
- 如何向maven仓库中上传第三方jar包(私服)
- 凸优化学习笔记(五):凸优化算法、无约束优化算法、有约束优化算法
- Modbus PLC攻击分析:从Modbus Poll/Slave到M340
- Hugging Face Course-Diving in 抱抱脸 Tokenizers library (WordPiece tokenization Unigram tokenization)