深入理解多线程(一)——Synchronized的实现原理
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下s...
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下s...
想介绍下synchronized的原理,但是又不知道从何下手,在网上看到一篇老外的文章,介绍了和线程同步相关的几个基础知识点。所以想把它翻译一下给大家看看。相信看过这些基础知识之后再看我后面要写的synchronized的原理就会好理解一点...
这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? /** * @author Hollis 17/9/27. */...
如果不那么吹毛求疵的话,可以使用枚举、静态内部类以及饿汉模式来实现单例模式。见:不使用synchronized和lock,如何实现一个线程安全的单例? 但是,上面这几种方法其实底层也都用到了synchronized,那么有没有什么办法可以不...
刚刚,在我的微信公众号(hollishcuang)上发了一条问题:不使用synchronized和lock,如何实现一个线程安全的单例? 瞬间收到了数百条回复。回答最多的是静态内部类和枚举。很好,这两种确实可以实现。 枚举 public e...
转移:http://www.hollischuang.com/archives/3935 转移:http://www.hollischuang.com/archives/3935 转移:http://www.hollischuang.com...
在Web开发中,我们会接触到很多领域模型中的概念,其中大部分和实体相关的概念都有缩写,一般以O(Object)结尾。其中比较常见的由DO、DTO、VO、DAO等。我们也经常有把一个实体对象转换为另外一个实体对象的操作。本文主要是介绍一种作者...
在Java中,有很多比较实用的类库,他们通常都定义了一系列具有常见功能的方法。本文总结了最常用的Java中的实用类以及他们的最常用的方法。无论是类和类中方法都是按照流行程度来排序的。 本文中列出来的类及方法都是经过大量实践的常用类库及方法,...
作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白...
在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。 线程安全 众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。...