zoukankan      html  css  js  c++  java
  • 线程池

    你的未来由你决定
    

      阻塞队列(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(你不知道一样东西,你也会不知道自己不知道这样东西)
  • 相关阅读:
    .net core项目iis10上出现 HTTP 错误 500.19,错误代码:0x8007000d
    redis安装
    【Docker】来自官方映像的 6 个 Dockerfile 技巧
    vi编辑器内上下左右健变ABCD的修复方法
    linux下安装ping命令
    Managing Chef Cookbooks the Berkshelf way
    chef学习杂记
    源代码与二进制异同
    chef 配置之 Templates
    shell ${}的使用
  • 原文地址:https://www.cnblogs.com/2014-1130/p/15409673.html
Copyright © 2011-2022 走看看