Atitit.java线程池使用总结attilax

1.1. 动态更改线程数量 1

1.2. code 1

三、线程池的原理

其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。

四、Java线程池

java关于线程池的主要内容有:

接口:Executor、ExecutorService、ScheduledExecutorService、CompletionService

类:Executors、AbstractExecutorService、ThreadPoolExecutor、ScheduledThreadPoolExecutor、ExecutorCompletionService

以上这些,我不可能一一介绍,这里只介绍重要的两个类Executors和ThreadPoolExecutor

2. Executors

虽然通过ThreadPoolExecutor可以完成线程池的创建,但是创建过程复杂繁琐,要求程序员对于每一个参数的意义都很清楚,对于创建的流程也必须十分了解,而通过Executors则可以大大简化线程池的创建过程,因此强烈建议程序员使用较为方便的 Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。否则,在手动配置和调整此类时,使用以下指导:

1.1. 动态更改线程数量

在大多数情况下,核心和最大池大小仅基于构造来设置,不过也可以使用 setCorePoolSize(int) 和 setMaximumPoolSize(int) 进行动态更改。

1.2. code

ExecutorService ExecutorService1_theardpool = Executors.newFixedThreadPool(20);

ExecutorService1_theardpool.submit(new Runnable() {

@Override

public void run() {

createTask(wechatPicLmt, targetDir, strPath_final, cur_f);

}

}); // end sumbit

java线程池简介 - 鹏霄万里展雄飞 - 博客频道 - CSDN.NET.html

自定义线程工厂 - Jackson Zhang - 博客频道 - CSDN.NET.html

Java多线程之-----实现自己的ThreadFactory - 技术是我的毕生追求 - 博客频道 - CSDN.NET.html

java线程池简介 - 鹏霄万里展雄飞 - 博客频道 - CSDN.NET.html

Atitit.java线程池使用总结attilax 1.1. 动态更改线程数量 1 1.2. code 1 三、线程池的原理 其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下相关推荐

  1. Atitit.java swing打印功能 api  attilax总结

    Atitit.java swing打印功能 api  attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...

  2. 关于操作系统中的作业(Job)概念

    在计算机操作系统中,作业(Job)是计算机操作员(或称为作业调度程序的程序)提供给操作系统执行任务的工作单元.作业通常以批处理(后台)模式运行, 而非普通用户正常使用操作系统的交互式模式. 在批处理模 ...

  3. 操作系统中的一些基本概念

    TSS:任务结构段Task status segment Yield():要完成一个"并发"程序,是不得不借助yield函数的.在程序中表现为当前线程会尽量让出CPU资源来给其他线 ...

  4. 简单理解操作系统中的PV操作

    可以这样理解: 临界区门前有棵树 用来挂红灯 进程想进CPU的门 先得上树取下盏灯(调用一次P) 取下一个去敲门(S=S-1) 如果树上没有灯取(S<=0) 树说暂时欠你一盏灯(S为负时) 进程 ...

  5. 线程池的原理和连接池的原理

    线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡 眠状态,当客户端有一个新请求时,就会唤 ...

  6. 在 Linux 操作系统中安装 Java

    在 Linux 操作系统中安装 Java 笔者的运行环境: CentOS Stream 8 x86_64 Java 11.0.12 进行这个教程之前,必须要先安装好一个 Linux 操作系统.这个 L ...

  7. 操作系统中常见的调度算法

    文章目录 1. 进程调度算法 1. 先来先服务算法(FIFO) 2. 最短作业优先算法(SJF) 3. 最短完成时间优先算法(STCF) 4. 高响应比优先算法(Highest Response Ra ...

  8. 【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )

    文章目录 一.Linux 内核在操作系统中的层级 二.Linux 内核子系统 三.Linux 内核子系统之间的关系 一.Linux 内核在操作系统中的层级 Linux 内核 所在层级 : 整个计算机系 ...

  9. mysql int()_简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...

  10. Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O

    I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CP ...

最新文章

  1. centos jdbc配置mysql_CentOS安装glassfish4.0配置jdbc连接mysql
  2. 推荐系统-03-简单基于用户的推荐
  3. 透过率和反射率的关系_光谱仪应用|色彩、透过率等四款测量系统
  4. python3 字符串 转 整型
  5. python【力扣LeetCode算法题库】面试题59 - II- 队列的最大值
  6. python软件安装步骤-一篇非常棒的安装Python及爬虫入门博文!
  7. 如何用Dummy实例执行数据库的还原和恢复
  8. github网址无法访问怎么办?
  9. IntelliJ Idea中使用Java8新特性lambda表达式
  10. profibus 主站软件_PROFIBUS网络的DP主站与DP从站
  11. 部署LNMP高可用负载群集
  12. python-day9-函数初识-三元运算符
  13. 数据库之间的远程操作
  14. Power Integrations推出的全新CAPZero-3 X电容放电IC符合IEC60335标准
  15. Surface的创建过程分析
  16. alsa 调试工具 aplay 的 编译与 使用
  17. 【读书笔记】《M型社会》大前研一
  18. 特斯拉又发生车祸!电池夜间还自燃3次
  19. 桌面虚拟化中VDI和IDV的五大区别
  20. 浙江大学计算机科学排名,2017浙江大学专业排名结果

热门文章

  1. Linux多线程编程[精]
  2. Kafka 学习笔记(二) :初探 Kafka
  3. 经典的CSS代码(转)
  4. 2016-1-8 windows 7下安装mysql及其配置和运用
  5. IPv6的地址表达形式
  6. Oracle 11g R2 RAC上配置TAF和Load balance
  7. ASP.NET 高级编程基础第十二篇—服务器控件
  8. python tornado返回上一页 读取refer
  9. Android中设置位移动画的停止
  10. BZOJ3728 PA2014Final Zarowki