当前位置:首页 > 芯闻号 > 充电吧
[导读]Atitit.java线程池使用总结attilax 1.1. 动态更改线程数量 11.2. code 1  三、线程池的原理其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭