5. ExecutorService

ExecutorService的submit和execute
ExecuteService代表的是Executors创建的线程池
submit提交的是Callable方法,返回Future,说明submit是有返回值的
execute执行的是Runnable方法,没有返回值
所以submit和execute的区别是提交的方法和是否有返回值

ExecutorService的shutdown,shutdownNow,awaitTermination

shutdown方法:平滑的关闭ExecutorService,当此方法被调用时,ExecutorService停止接收新的任务并且等待已经提交的任务(包含提交正在执行和提交未执行)执行完成。当所有提交任务执行完毕,线程池即被关闭。
awaitTermination方法:接收人timeout和TimeUnit两个参数,用于设定超时时间及单位。当等待超过设定时间时,会监测ExecutorService是否已经关闭,若关闭则返回true,否则返回false。一般情况下会和shutdown方法组合使用。

java线程池服务ExecutorService相关推荐

  1. java 线程池原理分析

    一.为什么使用线程池 1.降低资源消耗,减少线程创建和销毁次数,每个工作线程可以重复利用,执行多个任务 2.可根据系统承受能力,调整工作线程的数目,防止消耗过多的内存 二.java 线程池使用 Exe ...

  2. Java线程池ExecutorService中重要的方法

    ExecutorService 介绍 ExecutorService是java线程池定义的一个接口,它在java.util.concurrent包中,在这个接口中定义了和后台任务执行相关的方法. Ja ...

  3. Java线程池使用与原理

    线程池是什么? 我们可以利用java很容易创建一个新线程,同时操作系统创建一个线程也是一笔不小的开销.所以基于线程的复用,就提出了线程池的概念,我们使用线程池创建出若干个线程,执行完一个任务后,该线程 ...

  4. Java线程池实现原理及其在美团业务中的实践

    来自:美团技术团队 随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供的线程池ThreadPoolExecuto ...

  5. java 线程池 分组_JAVA面试题解惑系列(十)——话说多线程

    线程或者说多线程,是我们处理多任务的强大工具.线程和进程是不同的,每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程间的变量不能共享:而线程是运行在进程内部的,每个正在运行的进程至少有一个线程 ...

  6. java线程池拒绝策略_Java核心知识 多线程并发 线程池原理(二十三)

    线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再从队列中取出任务来执行.他 ...

  7. JAVA线程池原理以及几种线程池类型介绍

    在什么情况下使用线程池? 1.单个任务处理的时间比较短      2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销      2.如不使用线程池, ...

  8. Java 线程池详解

    构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段. 基础知识 Execu ...

  9. java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...

    线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...

  10. Java线程池Executor框架

    一.为什么要引入线程池 当存在大量并发任务时,创建.销毁线程需要很大的开销,运用线程池可以大大减小开销. 二.Executor框架 说明: Executor 执行器接口,该接口定义执行Runnable ...

最新文章

  1. Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等
  2. 虚拟机桥接模式不能上网
  3. pytorch 训练过程acc_深度学习Pytorch实现分类模型
  4. 关于程序设计语言(贴吧里很有意思的一个帖子)
  5. MyBatis 解决了什么问题?
  6. [转]sql,N/$/#/@的含义和作用
  7. C++:39---继承中构造函数、析构函数的关系
  8. Cookie / Session 的机制与安全
  9. MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H
  10. HDU1285 确定比赛名次【拓扑排序】
  11. wpa_supplicant2.9编译过程
  12. 解决microsoft store需要联网 你似乎没有联网
  13. Android 屏幕旋转流程分析
  14. 上网行为安全之流量管理技术
  15. java递归走迷宫游戏
  16. c语言中row是什么意思中文,row是什么意思
  17. js数组交集、差集和并集
  18. Watir vs. SilkTest
  19. matlab与数字图像处理--图像锐化imsharpen
  20. 不好好作图的NCS系列(二):3D版的PCA图

热门文章

  1. rabbitmq系列(一)-基本概念理解
  2. BIO、NIO、AIO差别
  3. jquery ajax select 二级联动
  4. 在cs页面获取input的值方法
  5. idea tomcat 发布web工程全过程
  6. 14.PHP核心技术与最佳实践 --- PHP 编码规范
  7. 10.程序员的自我修养---内存
  8. 33.卷1(套接字联网API)---调试技术
  9. 8. Document getElementById() 方法
  10. 机器学习之保存与加载.pickle模型文件