摘要:线程池中重要的配置 corePoolSize : 核心线程数量 workQueue : 等待队列 maximumPoolSize : 最大线程数量 提交任务时,判断的顺序为 corePoolSize --> workQueue -->maximumPoolSize 当线程数小于核心线程数时,创建核心
阅读全文
lotus贵有恒何必三更眠五更起 最无益只怕一日曝十日寒 |
|
随笔分类 - corejava-基础
摘要:线程池中重要的配置 corePoolSize : 核心线程数量 workQueue : 等待队列 maximumPoolSize : 最大线程数量 提交任务时,判断的顺序为 corePoolSize --> workQueue -->maximumPoolSize 当线程数小于核心线程数时,创建核心
阅读全文
摘要:项目中使用的线程池的地方很多,一直以来感觉对它的参数已经掌握的很好了,但是遇到几次问题之后才发现欠缺的这么多 遇到的坑 任务提交后长时间没有执行 任务进入了队列,线程还在执行之前的任务。本质原因是对线程和队列的优先级认识不深刻,有一种错觉以为是所有线程都忙的时候才进入任务队列。实际上相反,是队列满的
阅读全文
摘要:知识点总结 1.threadLocal里定义的四个方法 ThreadLocal定义了四个方法: get():返回此线程局部变量当前副本中的值 set(T value):将线程局部变量当前副本中的值设置为指定值 initialValue():返回此线程局部变量当前副本中的初始值 remove():移除
阅读全文
摘要:https://sowhat.blog.csdn.net/article/details/105316177?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_para
阅读全文
摘要:一、概述 ThreadLocal的名称比较容易让人误解,会认为其是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量。 其设计的初衷是为了解决多线程编程中的资源共享问题。提起这个,大家一般会想到synchronized,synchronized采取的是“
阅读全文
摘要:ThreadLocal<T>其实是与线程绑定的一个变量。ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别。Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。Synchr
阅读全文
摘要:一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。 Synchronized的作用主要有三个: (1)确保线程互斥的访问同步代码 (2)保证共享变量的修改能够及时可见 (3)有效解决重排序问题。 从语法上讲,Synchr
阅读全文
摘要:0 前言 记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronize
阅读全文
摘要:最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富
阅读全文
摘要:一、前言 “不好了,线上服务器超时严重,请求非常慢,好像报连接数too many了,怎么办?“小伙伴们在反馈。一般我们的技术老大的处理方式,把连接数和线程池调大点,重启,再观察。 往往这个方式是应急措施,治标不治本,因为不知道问题的原因。 有个严重误区,以为线程池设置太小了,调大点请求就会快了。 今
阅读全文
摘要:Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢? 原理知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这
阅读全文
摘要:JVM 参数调优: 堆空间主要组成部分: 1:新生代(new generation),新生代又划分为3部分: 1 eden 2 From Survivor(s0区域) 3 To Survivor(s1区域) 其中s0和s1区域大小相等 2:老年代(tenured generation) new出来的
阅读全文
摘要:对于不同的Jvm及不同的jdk版本内存模型不同 内存区域名称作用参数异常分析方法解决方案 Heap 堆内存 存储对象 -Xms -Xmx Java.lang.OutOfMemeoryError:Java heap space 使用内存分析工具查看问题 1.调大-Xmx,2.优化代码 Method A
阅读全文
摘要:需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图 JVM内存区域逻辑图 从图中我们大概了解JVM相关的内存区域。 JVM内存包括区域 Heap(堆区) New Generation(新生代) Eden Survivor From Survivor To O
阅读全文
摘要:堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Ed
阅读全文
摘要:首次运行公司项目,出现了内存溢出,具体出现java.lang.OutOfMemoryError: PermGen space和java.lang.OutOfMemoryError:GC overhead limit exceeded异常 调整运行时JVM内存大小主要有两种方式: 1,在Eclipse
阅读全文
摘要:堆内存是Java进程的重要组成部分,几乎所有与应用相关的内存空间都和堆有关。现在主要介绍与堆内存相关的参数设置,这些参数对Java虚拟机中非常重要的,也是对程序性能有着重要的影响。让你彻底脱离OOM内存溢出等等带来的程序崩溃。 1、 -Xms 初始堆内存大小,当Java进程启动时,虚拟机会分配一块初
阅读全文
摘要:链接:https://juejin.im/post/5c94a123f265da610916081f JVM 配置常用参数 堆参数 回收器参数 如上表所示,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行和并发 GC 的策略通过 UsePa
阅读全文
摘要:1、设置分配的内存大小 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分
阅读全文
摘要:jvm setting的参数确实比较多(Oracle官网Java HotSpot VM Options),但是作为一名java开发者,那几个最常用最基本的参数设置和意义一定要死记和理解。这里推荐一个网站http://jvmmemory.com/在上面你可以方便的设置jvm的参数(当然这个网站上也是有
阅读全文
|