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

Atitit.java线程池使用总结attilax

 

1.1. 动态更改线程数量 1

1.2. code 1

 

 

三、线程池的原理

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

四、Java线程池

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

接口:ExecutorExecutorServiceScheduledExecutorServiceCompletionService

类:ExecutorsAbstractExecutorServiceThreadPoolExecutorScheduledThreadPoolExecutorExecutorCompletionService

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值