zoukankan      html  css  js  c++  java
  • 第9章Java中的线程池

      Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或者并发执行的程序都可以使用线程池。在开发过程中,合理使用线程池能够带来3个好处。

        第一:降低资源消耗

        第二:提高响应速度

        第三:提高线程的可管理性

      9.1 线程池的实现原理

        线程池的主要处理流程,处理流程图如图9-1所示

        

        1)线程池判断核心线程池的线程是否都在执行任务,不是则则创建线程执行任务。如果都在执行任务,则进入下一个流程

        2)判断工作队列满了吗。若没有则加入到队列中,否则进入下个流程

        3)线程池是否处于工作状态,满了交给饱和策略来执行这个任务。

          

         

      源码分析:

        

      

      9.2线程池的使用

        9.2.1线程池的创建      

          new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime,milliseconds,runnableTaskQueue, handler); 
        9.2.2向线程池提交任务
          可以使用两个方法向线程池提交任务,分别未execute()和submit()方法

          execute()方法用于提交不需要返回值的任务,所以无法判断是否被线程池执行成功。

          submit()方法用于提交需要返回值的任务。线程池返回一个future类型的对象,通过future对象可以判断任务是否执行成功,并且可以通过future的get()方法获取返回值,会一直阻塞直到任务完成,而使用get(long timeout,TimeUnit unit)方法则会一直阻塞线程到达一定时间立即返回

       9.2.3线程池的关闭

          shutdown   shutdownNow

       9.2.4 合理配置线程池

  • 相关阅读:
    PSFTP使用简单教程
    JavaMail应用--通过javamail API实现在代码中发送邮件功能
    java常用数据类型转换
    自己封装的Java excel数据读取方法
    java怎样实现重载一个方法
    怎样做好测试保证交付产品质量
    软件测试之测试用例颗粒度问题
    Python 一句命令启动一个web服务器
    ansible 模块之在学习--lineinfile
    centos 7 安装sql 审核工具 inception + archer
  • 原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/11753802.html
Copyright © 2011-2022 走看看