概述 在前面我们初步认识了一下lock与AQS的基础内容,在同步组件的实现中,AQS是核心部分,我们通过AQS提供的模板方法来实现自定义同步组件,而底层的同步状态修改、阻塞线...
概述 在前面我们初步认识了一下lock与AQS的基础内容,在同步组件的实现中,AQS是核心部分,我们通过AQS提供的模板方法来实现自定义同步组件,而底层的同步状态修改、阻塞线...
概述 在学习java并发编程的过程中,java.util.concurrent包是我们需要学习和理解的关键之一,concurrent包的作者Doug Lea在其中为我们提供了...
注:该文章源码基于JDK1.8 概述 HashMap实现了Serializable和cloneable接口,继承了AbstractMap类。我们先来看下HashMap的图解:...
本文源码都基于JDK1.8 概述 Java是一门面向对象的编程语言,在Java的世界里,万物皆对象。而Object是一切对象的祖先。所以理解Object的常用方法就非常必要了...
本文源码基于JDK1.8 概述 String并不属于Java八大基础类型中的一种,但是其使用频率却不比任何一种基础类型低,所以了解String的常用方法和一些相关类就显得尤为...
概述 上一篇文章Java锁分类中,有提到一种分类的思想:乐观锁和悲观锁。悲观锁,总认为每次访问共享资源的时候,都有可能发生资源竞争,所以在线程获取到共享资源后,需要加锁,其余...
概述 先了解一下基本概念。线程是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个...
线程安全的两大核心 我们知道,出现线程安全的问题一般是因为主内存和线程工作内存数据不一致和重排序导致的,而解决线程安全问题,最重要的就是理解这两种问题是怎么来的,而理解他们的...
注:本文所有源码基于JDK1.8 概述 前面我们已经分析了HashMap,TreeMap这两种常用的Map类型,但是这两种类型都是线程不安全的。下面我们来看一下Map中最老牌...