• 线程池


    你的未来由你决定
    

      阻塞队列(blockQueue)

    线程池=银行网点

    corePoolSize, 线程池常驻核心线程数  今日当值线程
    maximumPoolSize, 最大线程数 (加班窗口)
    keepAliveTime, 多余的空闲线程的存活时间
    unit, 存活单位
    workQueue, 阻塞队列 等候区 Executors.defaultThreadFactory(), 线程工厂 工作人员的制服
    defaultHandler 拒绝策略

     线程池 maximumPoolSize,启用的时候,是在阻塞队列满了之后,线程数进行扩容,最大线程数也满了之后,会进到拒绝策略中

     线程池创建:

      Executors

      ThreadPoolExecutor

     线程配置:

      CPU密集型:cpu核数+1

      IO密集型:1.cpu核数*2

           2.线程数=cpu可用核心数/(1-阻塞系数)   阻塞系数:0.8-0.9

    学到皮 学到骨 学到肉 学到筋 学到魂

    死锁编码定位:

      是什么:两个或两个以上的线程在执行过程中,相互争夺资源而造成的一种相互等待的现象

      代码:

     new Thread(new HoldLockThread(lockA, lockB), "AAA").start();
            new Thread(new HoldLockThread(lockB, lockA), "BBB").start();

      解决:

       jps l 命令定位进程号

      jstack xx 找到死锁查看

      

    Unkonw Unkonw(你不知道一样东西,你也会不知道自己不知道这样东西)
  • 相关阅读:
    String类的substring方法
    postman绕过登录,进行接口测试的方法
    Dubbo
    那些吊炸天的互联网名词
    版本控制工具git
    Ubunto20.04 sudo apt-get update 出现目标被重置多次!
    ubuntu环境下搭建Hadoop集群中必须需要注意的问题
    Python作业---内置数据类型
    python作业完成简单的文件操作
    python3实现计算器
  • 原文地址:https://www.cnblogs.com/2014-1130/p/15409673.html
Copyright © 2020-2023  润新知