jvm
香山上的麻雀1008
大数据
展开
-
线程池(五)线程池四种拒绝策略
简介线程池等待队列已经排满,再也塞不下新的任务了,同时线程池的maximumPoolSize线程也达到了最大值,无法继续为新任务服务。这个时候我们需要拒绝策略机制合理的处理这个问题。JDK内置的拒绝策略:AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行。CallerRunsPolicy:"调用者运行"一种调节机制,该策略既...原创 2020-02-04 20:29:13 · 479 阅读 · 2 评论 -
线程池(一)为什么用线程池,线程池的优势?
线程池做的工作主要是控制运行的线程的数量,处理过程中,将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出的数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点:线程复用、控制最大并发数、管理线程。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等待线程创建就能立即执行。提高...原创 2020-02-03 09:53:33 · 588 阅读 · 0 评论 -
栈上分配与逃逸分析
引言:栈上分配与逃逸分析是在JVM层面进行java性能优化的一个技巧,本文将深入解读其应用以及原理。1.  什么是栈上分配?   栈上分配主要是指在Java程序的执行过程中,在方法体中声明的变量以及创建的对象,将直接从该线程所使用的栈中分配空间。 一般而言,创建对象都是从堆中来分配的,这里是指在栈上来分配空间给新创建的对象。2.  什么是逃逸?&am转载 2019-03-18 15:04:37 · 872 阅读 · 0 评论 -
JUC锁总结
加个普通方法后发现和同步锁无关换成两个对象后,不是同一一把锁了,情况立刻变化。都换成静态同步方法后,情况又变化所有的非静态同步方法用的都是同-把锁一实例对象 本身,|synchronized实现同步的基础: Java 中的每一个对象 都可以作为锁。具体表现为以下3种形式。对F普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的class对象。对于同步方法块,锁是synch...原创 2019-03-26 12:36:49 · 482 阅读 · 0 评论 -
java中的安全模型(沙箱机制)
本博文转载自java中的安全模型(沙箱机制)本博文整合自:Java安全——理解Java沙箱、Java 安全模型介绍、Java的沙箱机制原理入门相关介绍: 我们都知道,程序员编写一个Java程序,默认的情况下可以访问该机器的任意资源,比如读取,删除一些文件或者网络操作等。当你把程序部署到正式的服务器上,系统管理员要为服务器的安全承担责任,那么他可能不敢确定你的程序会不会访问不该访问的资源,为了...原创 2019-03-27 13:01:49 · 1394 阅读 · 0 评论 -
详解 JVM Garbage First(G1) 垃圾收集器
前言Garbage First(G1)是垃圾收集领域的最新成果,同时也是HotSpot在JVM上力推的垃圾收集器,并赋予取代CMS的使命。如果使用Java 8/9,那么有很大可能希望对G1收集器进行评估。本文详细首先对JVM其他的垃圾收集器进行总结,并与G1进行了简单的对比;然后通过G1的内存模型、G1的活动周期,对G1的工作机制进行了介绍;同时还在介绍过程中,描述了可能需要引起注意的优化点。笔...原创 2019-04-28 22:46:28 · 354 阅读 · 0 评论 -
Java虚拟机垃圾回收(三) 7种垃圾收集器
在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、P...转载 2019-09-22 15:00:23 · 350 阅读 · 0 评论
分享