JAVASE5的Execute将为你管理Thread对象,是启动任务的优选方案

/**
*newCachedThreadPool
在程序的执行过程中通常会创建于所需任务相同数量的线程即可以达到Integer.Max_values量 固使用不当容易引起内存溢出
*/
ExecutorService executorService = Executors.newCachedThreadPool();
public static ExecutorService newCachedThreadPool() {

return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>());
}
==========================
newFixedThreadPool==============================================
/**
*创建指定线程数的线程;
此方法阻塞队列的容量没有限制;允许请求的队列长度为Integer.MAX_VALUE,可能会堆积大量请求,造成OOM
*/
ExecutorService executorService = Executors.newFixedThreadPool(2);// 有限线程数队列
public static ExecutorService newFixedThreadPool(int nThreads)
{
return new ThreadPoolExecutor(nThreads, nThreads, 19 20 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
}

public
LinkedBlockingQueue(){
this(Integer.MAX_VALUE);//创建指定容量的链表队列
}

===============================newSingleThreadExecutor==============================

/**

*线程数量为1的FixedThreadPool 每个任务将进入队列直到上一个任务处理完成,使用同一个线程处理<br>

LinkedBlockingQueue队列实现也是队列长度为Integer.MAX_VALUE所以也容易引起堆积大量请求,造成OOM

*/

  ExecutorService executorService = Executors.newSingleThreadExecutor();


public static ExecutorService newSingleThreadExecutor() {

return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()));
}

J.U.C关于Execute实现的更多相关文章

  1. Dynamics 365使用Execute Multiple Request删除系统作业实体记录

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复295或者20190112可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  2. 报表开发之批量导入导出excel

    在日常使用报表过程中,会有这样一种情况,你将Excel表分发给各个员工,员工填完后,统一整理成多个Excel,你需要将这些数据,用报表的填报功能,提交录入到数据库中,这样一来可避免到服务器机房录数据的 ...

  3. C# VS JAVA 差异 (未完待续)

    1. 静态构造函数 C#中有静态构造函数, Java中没有静态构造函数.其实Java中有一个类似静态构造函数的东东,称作静态初始化,或者静态代码块,可以通过这样的代码实现相同的功能: 但是Java中静 ...

  4. First step of using junit---------Software Testing Lab 1---2016.03.18

    1. Install junit a)      Download “junit.jar” b)      In eclipse, Windows->Preferences->Java-& ...

  5. 如何用 python 优雅地完成数据库课设

    0 前言 偶然间发现 Google 收录了学校实验打卡系统的接口,正好要做数据库课设,便拿来作为 environment. 机房居然装了 python ,早就听说 python 写爬虫速度一流,课上的 ...

  6. 使用jdk进行数据迁移(sqlite迁移mysql)

    直接粘贴代码 注意:rewriteBatchedStatements=true(加快连接速度) package com.wbg; import org.omg.Messaging.SYNC_WITH_ ...

  7. 利用ExecuteMultipleRequest来批量导入数据,成功的成功失败的失败,并生成导入结果文件

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  8. 一种优化操作list、数组的多线程解决方案。

    这几天接触到了一些操作list的功能,由于list太长,加上每条数据的处理时间,导致性能下降,正好利用学来的多线程知识和网上的资料结合实践一番,写出了一个通用类如下. /** * 操作数组的线程 * ...

  9. Python Ethical Hacking - Intercepting and Modifying Packets

    INTERCEPTING & MODIFYING PACKETS Scapy can be used to: Create packets. Analyze packets. Send/rec ...

随机推荐

  1. Spring Boot + Elasticsearch 使用示例

    本文分别使用 Elasticsearch Repository 和 ElasticsearchTemplate 实现 Elasticsearch 的简单的增删改查 一.Elastic Stack El ...

  2. 保姆级别的RabbitMQ教程!包括Java和Golang两种客户端

    目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitMQ 启动RabbitMQ 什么是Authentication(认证) 指定RabbitMQ的启动配置文件 如何让guest用户远程 ...

  3. 整理一下《java并发编程实战》中的知识点

    分工.同步.互斥的历史由来 分工:单道.多道.分时 同步:线程通信(组织编排任务) 互斥:因(多线程访问共享资源)果(串行化共享资源的访问) 1切都是为了提高性能 2.可见性.原子性.有序性 可见性: ...

  4. Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法

    ☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...

  5. 第7.13节 案例详解:Python类变量

    第7.13节 案例详解:Python类变量 上节介绍了类变量的定义和使用方法,并举例进行了说明.本节将通过一个更完整的例子来说明. 一.    定义函数dirp def dirp(iter): ret ...

  6. PyQt(Python+Qt)学习随笔:QTableWidgetItem项操作相关的flags、isSelected、checkState方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget中项操作相关的属性包括是否可用.是否可选中.是否可编辑.是否可复选.是否选中 ...

  7. 百度前端技术学院-基础-day3

    2020.9.15 第三天的课程内容,复习了一些CSS的基础属性(果然不用就会忘). 学习了一些新的属性,比如text-shadow.text-indent(还不是很清楚).font-style等等. ...

  8. Markdown 公式指导手册

    本文为 Markdown 环境下的常用语法指引.Typora 编辑阅读器支持 \(\LaTeX\) 编辑显示支持,例如:\(\sum_{i=1}^n a_i=0\),访问 MathJax 以参考更多使 ...

  9. hive的调优策略

    hive有时执行速度很慢,若hive on spark 的话,在sparkUI上可以清楚看到是否数据倾斜 优化方法: 1.增加reduce数目 hive.exec.reducers.bytes.per ...

  10. 安卓基于谷歌串口api进行串口开发

    准备材料 AndroidStudio 谷歌android-serialport-api 前情提要 网上提供很多基于c语言对安卓串口开发,有jni.cmake等等,不过都太高深,谷歌提供的api已经可以 ...