当前位置: 首页 > news >正文

网站开发毕业答辩演讲稿范文互联网金融营销案例

网站开发毕业答辩演讲稿范文,互联网金融营销案例,新闻网站网页设计,那家网站做照片书好在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式,1、使用ThreadPoolExecutor类…

在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式,

1、使用ThreadPoolExecutor类

2、使用Executors类

其实这两种方式在本质上是一种方式,都是通过ThreadPoolExecutor类的方式,下面分析其使用方式。

一、ThreadPoolExecutor的方式

1、使用方法

查看JDK的源码,ThreadPoolExecutor类提供了以下构造方法,

0f72bc243b2e2bb67d4cbe75357f8523.png

可以看到有四个构造方法,先看第一个构造方法,其代码如下,

48304ba5e6f9fe08f3fa1abda7d326ab.png

public ThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,

TimeUnit unit,

BlockingQueueworkQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,

Executors.defaultThreadFactory(), defaultHandler);

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

从上面的代码中可以确定,我们需要传的参数有corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue

下面对这几个参数进行说明

corePoolSize:线程池的核心线程数;

maximumPoolSize:线程池的最大线程数;

keepAliveTime:线程池空闲时线程的存活时长;

unit:线程存活时长大单位,结合上个参数使用;

workQueue:存放任务的队列,使用的是阻塞队列;

在这个方法中调用了另外的一个构造方法,即上图中四个构造方法中的第四个,从源码中得知,一个线程池包含的属性共有corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler七个,上面说到了五个,下面是其他两个的含义,

threadFactory:线程池创建线程的工厂;

handler:在队列(workQueue)和线程池达到最大线程数(maximumPoolSize)均满时仍有任务的情况下的处理方式;

上面的七个参数,也即ThreadPoolExecutor的第四个构造方法需要的参数。

我们再来看中间的两个构造方法,和第一个的区别在于,第二个和第三个指定了创建线程的工厂和线程池满时的处理策略。

通过上面的方式便创建了线程池

二、Executors的方式

1、使用方法

Executors类提供了下面的构造方法,

1f5b7177eae7abd27e859dd00acfa7a8.png

可以看到提供了约10个的构造方法,但是发现其方法返回值为ExecutorService,这不是我们要的ThreadPoolExecutor那,别急,看下ExecutorService这个类是什么,

其源码如下,

3392de3718d5af2280ceea72d011c52a.png

其是一个接口,和ThreadPoolExecutor没什么关系那,不对,可以大胆猜想下,ThreaPoolExecutor可以实现接口,验证下我们的猜想,

c8c4057e1977db5e745b09be739a5b17.png

ThreadPoolExecutor继承了AbstractExecutorService

4ba72ef1e59d1b631219b792bcb473cc.png

AbstractExecutorService抽象类实现了ExecutorService接口,那么ThreadPoolExcutor和ExecutorService就有了关系。

我们再挑选ExecutorService中的方法看下其具体实现,

public static ExecutorService newFixedThreadPool(intnThreads) {return newThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue());

}

从上面的代码中可以看出,其返回的是ThreaPoolExecutor对象,调用的是ThreaPoolExecutor类四个构造方法中的第一个。

总结,上面两种创建线程池的方式,其本质都是通过ThreaPoolExecutor类的构造方法的方式,所以ThreaPoolExecutor是重点。

http://www.lbrq.cn/news/2722879.html

相关文章:

  • 如何修改用织梦做的网站的模板seo辅助工具
  • wordpress直接上传视频网站吗热门国际新闻
  • 电商网站有哪些特色环球网最新消息
  • wordpress 摘要不显示网站优化推广服务
  • 企业建站系统营销吧tt团队网络营销与策划
  • app在线开发制作平台seo优化工具大全
  • java都是做网站吗网络营销方式都有哪些
  • 孝感网站制作免费做网站的平台
  • 网站首页引导页模版口碑营销
  • 龙岗网站建设需要考量些什么深圳网络推广网络
  • 企业建站公司怎么创业淘宝权重查询入口
  • 网站 建设 价格表郑州网站关键词排名
  • 湖北中英双语网站建设安装百度到桌面
  • 如何做网站迁移网站分析报告范文
  • 淘宝详情页设计优化关键词推广
  • 简述企业建网站的步骤什么平台推广效果最好
  • 做再生资源的网站有哪些怎么查找关键词排名
  • 毕业设计网站建设软件项目大数据培训课程
  • app制作免费trinseo公司
  • 做企业网站需要准备什么网站推广的常用方法有哪些
  • 做网站被骗首付款怎么报案seo技术培训
  • 重庆网站优化排名推广推广手段
  • 怎么查网站的外链数量网络营销案例分享
  • 有什么可以做兼职的网站吗百度秒收录技术
  • 网站建设有哪些方法百度快照怎么做
  • 网站图片速度百度图片识别搜索
  • 该网站使用的安全设置市场营销考试题目及答案2022
  • 厦门加盟网站建设网站搭建免费
  • 嘉峪关做网站熊猫关键词挖掘工具
  • 汕头市政府门户网站官网网站怎么接广告
  • Spring Boot 静态函数无法自动注入 Bean?深入解析与解决方案
  • Cherryusb UAC例程对接STM32 SAI播放音乐和录音(上)=>SAI+TX+RX+DMA的配置与音频回环测试
  • 流式数据服务端怎么传给前端,前端怎么接收?
  • GPT-o3回归Plus用户,GPT5拆分三种模式,对标Grok
  • 6 ABP 框架中的事件总线与分布式事件
  • PCBA:电子产品制造的核心环节