文章
Java中CAS原理详解前言在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是vo
  • arick
  • 2019-11-16 23:56:01
  • 195
Tomcat线程池的优化1. 简介Tomcat继承并重写了JAVA原生的java.util.concurrent.ThreadPoolExecutor,增加了一些更有效率的方法,并且定义了默认拒绝策略。2. 原理分析2.1 实例化与阿里巴巴JAVA规范中定义的线程池创建规范类似,Tomcat实例化线程池时,同样限制了任务队列的长度,maxQueueSize默认为Integer.MAX_VALUE,
  • arick
  • 2019-11-16 23:42:00
  • 161
前言说起Guava Cache,很多人都不会陌生,它是Google Guava工具包中的一个非常方便易用的本地化缓存实现,基于LRU算法实现,支持多种缓存过期策略。由于Guava的大量使用,Guava Cache也得到了大量的应用。但是,Guava Cache的性能一定是最好的吗?也许,曾经,它的性能是非常不错的。但所谓长江后浪推前浪,总会有更加优秀的技术出现。今天,我就来介绍一个比Guava C
  • arick
  • 2019-10-15 15:47:06
  • 364
 Mac 操作命令:⌘+w是关闭标签刷新,网页是Command+R插销:command+z 反向撤回:shift+command+z 文件返回的上一级:Command + 方向上mac电脑窗口最大化默认的快捷键为:Command + control + F,但是这个窗口最大化快捷键也不是通用的,对于某些应用程序无效。 IntelliJ IDEA 操作命令:command + shift + / 注
  • arick
  • 2019-09-30 14:52:32
  • 436
虫子有个服务器,没多久磁盘空间就被撑爆了,为了定位问题,我需要查找服务器中占用体积最大文件。 像df、du 或 ncdu 这些命令只会显示当前目录的文件,并不会显示整个系统范围的文件。经过查找,看到了网友分享的如下四种命令组合方法。操作步骤使用Xshell等软件连接服务器,全选复制下方4种命令合集中的任意一种,粘贴至Xshell执行,稍等即可列出最大的10个文件的位置。虫子通过这种方法,最终定位到
  • arick
  • 2019-09-29 14:49:45
  • 509
摘要: 本文所讨论的计算资源是指用来执行 Task 的资源,是一个逻辑概念。本文会介绍 Flink 计算资源相关的一些核心概念,如:Slot、SlotSharingGroup、CoLocationGroup、Chain等。并会着重讨论 Flink 如何对计算资源进行管理和隔离,如何将计算资源利用率最大化等等。理解 Flink 中的计算资源对于理解 Job 如何在集群中运行的有很大的帮助,也有利于我
  • arick
  • 2019-09-24 22:16:21
  • 493
关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法。希望能对多线程开发学习的童鞋有些启发和帮助。一、Threa关于Java线程池的参数关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干
  • arick
  • 2019-09-24 22:14:56
  • 480
java反射核心机制与原理解析一、java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection):1、Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。2、Java垃圾回收(Garbage Collecti
  • arick
  • 2019-09-24 22:13:25
  • 626
分布式事务——消息最终一致性方案前言分布式事务一直是服务化拆分后一个绕不开的话题,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A执行成功了,B执行却失败了,而A的事务此时已经提交,无法回滚,那么最终就会导致两边数据不一
  • arick
  • 2019-09-24 22:10:32
  • 608
Java不可重入锁和可重入锁理解最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。基础知识Java多线程的wait()方法和notify()方法这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出IllegalMonitorStateException异常,所以
  • arick
  • 2019-09-24 22:08:31
  • 497
  • 1
  • 2
  • 3
  • 跳至
Rick ©2018