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应用相关推荐

  1. Java的多线程和线程池的使用,你真的清楚了吗?

    Java的多线程和线程池的使用 多线程大大提高程序运行效率,我们在开发过程中经常会开启一个线程来执行一些费时的任务.开启一个线程有4种方式,在下面的文章我将详细的去讲解. 继承Thread 继承Thr ...

  2. 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目

    阿里的面试官问了个问题,如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办, 答案: 当一个任务通过execute(Runnable)方法欲添加到线程池时: ...

  3. Java多线程之线程池详解

    Java多线程之线程池详解 目录: 线程池使用及优势 线程池3个常用方式 线程池7大参数深入介绍 线程池底层工作原理 1. 线程池使用及优势 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务 ...

  4. pool python 传参数_Python-爬虫-多线程、线程池模拟(urllib、requests、UserAgent、超时等)...

    接着之前的MonkeyLei:Python-爬取页面内容(涉及urllib.requests.UserAgent.Json等) 继续练习下多线程,线程池模拟.. 我想这样: 1. 创建一个线程池,线程 ...

  5. java 多线程使用线程池_Java多线程:如何开始使用线程

    java 多线程使用线程池 什么是线程? (What is a Thread?) A thread is a lightweight process. Any process can have mul ...

  6. java多线程之线程池简介

    前言 池化技术已经屡见不鲜了,比如数据库连接池,大家的项目中应该也用到了线程池.池化技术的好处:降低资源的消耗,提高响应速度,提高线程的可管理性.本篇主要是和大家一起分析下线程池的架构和它的工作流程. ...

  7. java多线程及线程池使用

    Java多线程及线程池的使用 Java多线程 一.Java多线程涉及的包和类 二.Java创建多线程的方式 三.Java线程池 1. 创建线程池ThreadPoolExecutor的7个参数 2. 线 ...

  8. 面试必问:多线程与线程池

    前言 前几章都在讲一些锁的使用和原理,主要是为了保证多线程情况下变量的原子性,但这并不是说多线程不好,合理利用还是有好处的.至于什么好处,看下面内容就懂了,先打个比方吧(谁叫比方,上来挨打):假如你体 ...

  9. 用10086客服热线理解Java高级多线程之线程池

    Java高级多线程之线程池 客服热线案例 引入线程池 1.线程的概念 2.线程池的作用: 获取线程池 1.常用的线程池接口和类 2.代码案例 Callable接口 1.概念简述 2.应用场景 3.方法 ...

  10. java多线程和线程池

    目录 零.java线程理解 0.1 两种线程模型 0.1.1 用户级线程 ULT 0.1.2 内核级线程 KLT--JAVA虚拟机使用的线程模型(KLT) 0.2 java线程与系统内核线程 0.3 ...

最新文章

  1. transmission Linux(debian)下的BT下载客户端安装
  2. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)
  3. 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
  4. 六角填数---第五届蓝桥杯
  5. jaxb util_JAXB自定义绑定– Java.util.Date / Spring 3序列化
  6. 谈谈数次生信线下活动的收获和体会
  7. phpcms前台注入导致任意文件读取漏洞
  8. 没有工厂模式(工厂模式2)
  9. onethink中的用户登录session签名
  10. 用Notepad2替换Windows自带记事本
  11. MUSIC算法及MATLAB实现
  12. netdraw绘制网络结构图
  13. 找不到MSVCR120.dll,无法执行代码 ——问题解决方案
  14. Beyond Compare 30天评估期结束解决办法
  15. epcs1s是epcs1系列的么_串行FLASH配置芯片(EPCS1或EPCS4)数据手册.pdf
  16. 夏季繁华系列||妆面照欣赏
  17. Java如何实现定时任务——从某一天起每天定点执行
  18. [OpenGL] 几何着色器
  19. 首次!TinyML低功耗边缘侧机器学习技术论坛-亚洲分会来到中国!
  20. 下拉列表(select标签)

热门文章

  1. 机器学习- 吴恩达Andrew Ng Week8 知识总结 Dimensionality Reduction
  2. Python数据结构,线性结构:栈、队列、双端队列、列表
  3. 用tensorflow实现矩阵分解
  4. 使用winedt写论文遇到的一些小问题
  5. 多元线性回归--machine learning
  6. html页面显示代码插件,客户端显示web网页支持html5的第三方内核插件
  7. 如何向maven仓库中上传第三方jar包(私服)
  8. 凸优化学习笔记(五):凸优化算法、无约束优化算法、有约束优化算法
  9. Modbus PLC攻击分析:从Modbus Poll/Slave到M340
  10. Hugging Face Course-Diving in 抱抱脸 Tokenizers library (WordPiece tokenization Unigram tokenization)