zoukankan      html  css  js  c++  java
  • 生产上第一使用线程池后的总结与反思

      生产上与 esb 交互时,因为系统后台造数使得 esb 接收响应报文超时。先将造数逻辑修改成线程池异步调用。第一次使用,记录一下学习的历程。

    【1】Java向多线程中传递参数的三种方法

        https://blog.csdn.net/saycheesenn/article/details/52956331

         一、通过构造方法传递数据

         二、通过变量和方法传递数据

         三、通过回调函数传递数据

    【2】线程池不建议使用Executors去创建,而是通过ThreadPoolExecutor方式的原因

        https://blog.csdn.net/qq_31615049/article/details/80756781

    创建线程的几种方式及优劣

    new Thread 方式

    优势:显而易见的线程创建方式

    缺点:每次都要new对象,当有大量请求时,数不清new了多少个对象了,如果不及时关闭会导致内存溢出,因此还要考虑线程管理等问题。

    Executors工厂创建线程池

    newCachedThreadPool:创建一个可缓存线程池

    优点:很灵活,弹性的线程池线程管理,用多少线程给多大的线程池,不用后及时回收,用则新建

    缺点:一旦线程无限增长,会导致内存溢出。

    newFixedThreadPool :创建一个固定大小线程池

    优点:创建一个固定大小线程池,超出的线程会在队列中等待。

    缺点:不支持自定义拒绝策略,大小固定,难以扩展

    newScheduledThreadPool

    优点:创建一个固定大小线程池,可以定时或周期性的执行任务。

    缺点:任务是单线程方式执行,一旦一个任务失败其他任务也受影响

    newSingleThreadExecutor

    优点:创建一个单线程的线程池,保证线程的顺序执行

    缺点:不适合并发。。不懂为什么这种操作要用线程池。。为什么不直接用队列

    以上四种创建方式的统一缺点:不支持自定义拒绝策略。

     

    通过ThreadPoolExecutor创建线程池

    优点:集上述优点于一身

    缺点:没发现缺点,因为上述线程池的底层就是通过它来创建的

    【3】ThreadPoolExecutor参数解释

    https://blog.csdn.net/a837199685/article/details/50619311

    【4】性能测试

    通过SoapUI进行压力测试

    【5】什么是同步,什么是异步

    【6】自定义拒绝策略

  • 相关阅读:
    [置顶] 某大型银行深化系统技术方案之一:实现技术定义
    android代码实现关机
    一个IP每天只弹一次广告窗口
    bootstrap框架开发电子商城案例
    HDU 1203 I NEED A OFFER!(dp)
    STL algorithmi算法s_sorted和is_sorted_until(28)
    计数排序(C语言版本)
    4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
    《python源代码分析》笔记 pythonVM一般表达式
    ASP.NET——两个下拉框来实现动态联动
  • 原文地址:https://www.cnblogs.com/smallwangmusk/p/10638383.html
Copyright © 2011-2022 走看看