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

高度重视机关门户网站建设酒店seo是什么意思

高度重视机关门户网站建设,酒店seo是什么意思,津南区提供网站建设协议,网站建设开发数据库目录 1.什么是线程池 2.为什么要使用线程池 3.怎么使用线程池 4.自定义一个线程池 5.为什么不推荐使用系统自带的线程池 5.1线程池构造方法的参数和含义 5.1.1拒绝策略 5.2线程池的工作原理 5.3为什么不适用系统自带的线程池 补充#xff1a;工厂模式 1.什么是线程池…目录 1.什么是线程池 2.为什么要使用线程池 3.怎么使用线程池 4.自定义一个线程池 5.为什么不推荐使用系统自带的线程池 5.1线程池构造方法的参数和含义 5.1.1拒绝策略 5.2线程池的工作原理 5.3为什么不适用系统自带的线程池 补充工厂模式 1.什么是线程池 在JDBC编程中通过DataSource获取Connection连接的时候就已经用到了池的概念当Java程序需要数据库连接的时候就从池中拿一个空闲的连接对象给Java程序Java程序用完了连接之后就会返回给连接池。 线程池就是在池中放的是线程本身当程序启动的时候就创建出若干个线程如果有任务就处理没有任务就等待。 百度百科的定义为 线程池是一种多线程处理形式处理过程中将任务添加到队列然后在创建线程后自动启动这些任务。线程池线程都是后台线程。 2.为什么要使用线程池 使用线程池可以减少系统创建线程的损耗。 如下图创建线程需要申请PCB 线程池的作用就是为了减少这些关于申请和释放PCB的操作尽量保证我们的程序在用户态执行不牵扯到硬件层面。 3.怎么使用线程池 JDK给我们提供了一些方法来创建线程池 // 1. 用来处理大量短时间工作任务的线程池,如果池中没有可用的线程将创建新的线程如果线程空闲60秒将收回并移出缓存ExecutorService cachedThreadPool Executors.newCachedThreadPool();// 2. 创建一个操作无界队列且固定大小线程池ExecutorService fixedThreadPool Executors.newFixedThreadPool(3);// 3. 创建一个操作无界队列且只有一个工作线程的线程池ExecutorService singleThreadExecutor Executors.newSingleThreadExecutor();// 4. 创建一个单线程执行器可以在给定时间后执行或定期执行。ScheduledExecutorService singleThreadScheduledExecutor Executors.newSingleThreadScheduledExecutor();// 5. 创建一个指定大小的线程池可以在给定时间后执行或定期执行。ScheduledExecutorService scheduledThreadPool Executors.newScheduledThreadPool(3);// 6. 创建一个指定大小不传入参数为当前机器CPU核心数的线程池并行地处理任务不保证处理顺序Executors.newWorkStealingPool(); 这里使用第2个方法进行基本使用示例 先创建一个线程池 //创建一个线程池 ExecutorService threadPoll Executors.newFixedThreadPool(3); 此时线程池中已经存在了一些创建好的线程只需要往线程池中提交任务即可。 这里采用for循环提交十个任务打印“我是任务几” //提交任务到线程池for (int i 0; i 10; i) {int taskId i;threadPoll.submit(() - {System.out.println(我是任务 taskId ,Thread.currentThread().getName());});} 任务被提交到线程池后任务就会被自动执行。 4.自定义一个线程池 1.可以提交任务到线程池那么就会有一种数据结构来保存我们提交的任务这里可以考虑用阻塞队列来保存任务。 2.创建线程池需要指定初始线程数量这些线程不停的扫描阻塞队列如果有任务就立即执行。可以考虑使用线程池对象的构造方法接收要创建线程的数量并在构造方法中完成线程的创建。 实现过程 1.定义一个阻塞队列来保存我们的任务 //1.定义一个阻塞队列BlockingDequeRunnablequeuenew LinkedBlockingDeque(3); 2.定义一个方法提交任务 //2.对外提供一个方法用来往队列中提交任务public void submit(Runnable task) throws InterruptedException {queue.put(task);} 3.定义构造方法 //3.构造方法完成线程的创建,扫描队列取出任务并执行public MyThreadPoll(int capacity){if(capacity0){throw new RuntimeException(线程数量不能小于0);}for (int i 0; i capacity; i) {Thread threadnew Thread(()-{while(true) {try {//取出任务Runnable take queue.take();//执行任务take.run();} catch (InterruptedException e) {throw new RuntimeException(e);}}});//启动线程thread.start();}} 测试一下代码 public static void main(String[] args) throws InterruptedException {//创建自定义的线程池MyThreadPoll myThreadPollnew MyThreadPoll(3);//往线程池中提交任务for (int i 0; i 10; i) {int taskIdi;myThreadPoll.submit(()-{System.out.println(我是任务 taskId , Thread.currentThread().getName());});}} 执行成功测试通过。 5.为什么不推荐使用系统自带的线程池 5.1线程池构造方法的参数和含义 通过工厂方法获取的线程池最终都是ThreadPoolExecutor类的对象。 ThreadPoolEexecutor各参数含义 corePoolSize:核心线程数创建线程池时包含的最小线程数量 maximumPoolSize:最大线程数也可以叫做临时线程数当核心数不够用的时候允许系统可以创建的最多线程数是多少 keepAliveTime:临时线程空闲的时长 TimeUnit unit:空闲的时间单位和keepAliveTime配合使用 BlockingQueueRunnableworkQueue用来保存任务的阻塞队列 ThreadFactory线程工厂如何去创建线程用系统默认的就可以 RejectedExecutionHandler拒绝策略触发的时机当线程池处理不了过多的任务时触发 举例说明 5.1.1拒绝策略 拒绝策略有4中根据自己的业务场景选择合适的拒绝策略即可。 5.2线程池的工作原理 这七个参数搭配使用 1.当任务添加到线程池中时先判断任务数是否大于核心线程数 2.如果不大于直接执行否则加入阻塞队列 3.当阻塞队列满了之后会按指定的线程最大数创建临时线程 4.当阻塞队列满了而且临时线程也创建完成再提交任务时执行拒绝策略 5.当任务减少临时线程达到空闲时长时会被回收 5.3为什么不适用系统自带的线程池 补充工厂模式 工厂模式是我们最常用的实例化对象模式了是用工厂方法代替new操作的一种模式。 先来看看一个代码示例 定义一个Student类定义有参构造 由于重载过程参数列表相同而报错 。 使用工厂方法
http://www.hkea.cn/news/14421526/

相关文章:

  • 贵州省建设厅网站公众一体化平台html5做网站导航
  • 做推广可以在哪些网站发布软文程序员做网站外快
  • 台商网站建设公司黄页做网站的软件 简单易学
  • iis 新建网站seo标题关键词优化
  • 天津模板做网站微信管理系统免费版
  • 东莞网站设计定制开发谷德设计网官网
  • h5网站开发哪个好北京网页制作电话
  • 商务网站建设体会关键词优化公司推荐
  • 商城网站建设服务简述网络营销的意义
  • 做移动网站建设电商网站项目经验介绍
  • seo两个域名一个网站有影响吗重庆巴南网站制作
  • wordpress直播网站主题沈阳市建设工程质量检测中心网站
  • 制作地图的网站现有的网站开发技术
  • 做app必须有网站吗wordpress阿里云esc
  • 网站图片动态换名店面设计平面图
  • 朝青板块网站建设娄星区建设局网站
  • 企业网站导航设计代理主要干什么
  • 备案网站注意事项做机械配件的网站
  • 做相同网站违法吗荆门seo
  • 百度网站打开linux wordpress路径
  • 微网站怎么做百度关键词排名seo关键词排名优化教程
  • 男的做直播哪个网站好用vs2013做网站案例
  • 网站建设方向论文提纲全国工商登记网
  • 皋兰县城乡和住房建设局网站太原网站定制
  • 关于网站设计的论文高端的佛山网站建设
  • 网站找百度做可以嘛最新联播新闻
  • 山东省住房城乡建设部网站网站平台定制开发
  • wordpress底部导航栏seo推广专员招聘
  • 保山网站建设优化北京软件设计公司
  • wordpress模板页面怎么添加图片seo的中文含义是什么