
Java并发编程
lqly
这个作者很懒,什么都没留下…
展开
-
jvisualvm安装Visual GC插件
给jdk自带的jvisualvm安装Visual GC插件,遇到We're sorry the java.net site has closed(我们很抱歉java.net网站已经关闭) 1、找到新的更新地址 visualvm新访问地址:https://visualvm.github.io/index.html 进入“Plugins”,找到对应自己JDK版本的更新地址 2、进入jvisualvm的插件管理 "工具" - "插件" 在"设置"中修改url地址为刚才我们在github上找到的对应原创 2020-06-06 11:20:29 · 381 阅读 · 1 评论 -
synchronized 是可重入锁吗?为什么?
什么是可重入锁? 关于什么是可重入锁,我们先来看一段维基百科的定义。 若一个程序或子程序可以“在任意时刻被中断然后操作系统调度执行另外一段代码,这段代码又调用了该子程序不会出错”,则称其为可重入(reentrant或re-entrant)的。即当该子程序正在运行时,执行线程可以再次进入并执行它,仍然获得符合设计时预期的结果。与多线程并发执行的线程安全不同,可重入强调对单个线程执行时重新进入同...原创 2020-04-15 14:09:38 · 304 阅读 · 0 评论 -
Java 中 synchronized 的实现原理及偏向锁、轻量级锁、自旋锁、公平锁简介
在多线程编程中,synchronized 一直都是元老级别的存在,很多人都称之为重量级锁。本文来简单介绍synchronized的实现原理,以及为减少获得锁和释放锁所带来的性能损耗而引进的偏向锁与轻量级锁。 Java中使用synchronized来实现同步的基础是什么呢?Java中每一个对象都可以作为锁! 对于普通同步方法,锁是当前实例对象。 ...原创 2020-04-15 14:00:27 · 222 阅读 · 0 评论