-
JUC-02-AtomicInterger 原子性整型源码详解
AtomicInterger 介绍
可以原子性更新的 Integer 值,当然这个类并不能完全替代 Integer 对象。
使用
使用起来还是很方便的。
比如说我们定义一个计数器,使用 AtomicInteger 可以同时兼顾性能与并发安全。
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author bi...
2019-01-20 06:10:12 |
Concurrency
-
JUC-02-AtomicReference 对象原子性更新
AtomicReference 介绍
可以原子性更新的引用值。
源码学习
类定义
AtomicReference 和 AtomicInteger 比较类似。
都有 Unsafe 属性,和一个对应的值偏移量。
区别就是此处的 value 是通过 volatile 关键字修饰的变量。
public class AtomicReference<V> implements ...
2019-01-20 06:10:12 |
Concurrency
-
JUC-01-Atomic 原子性
原子性
原子是世界上的最小单位,具有不可分割性。
比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。
再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。...
2019-01-20 06:10:12 |
Concurrency
-
JUC-00-JUC 目录,java 集合汇总
JUC
java.util.concurrent 是 java 为并发提供的强大的工具包。
本文将整理学习常见的类,API,适用场景,源码。
重点是类本身,并发和 jmm 将在其他系列学习。
Arrays
Array是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:
Arrays.asList:可以...
2019-01-20 06:10:12 |
Concurrency
-
轻松学习多线程 16-Active Object 模式
Active Object 模式
Active Object 模式是接受异步消息的主动对象
实际案例
类信息概览:
类名
说明
Main.java
方法的总入口
MakerClientThread.java
构建客户端线程
...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 15-Thread Special Storage ThreadLocal 模式
Thread Special Storage 模式
Thread Special Storage 模式是一种即使只有一个入口,也会为每一个线程分配特有的存储空间的模式。
实际案例
类信息概览:
类名
说明
Main.java
方法的总入口
LogInter...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 14-Two Phase Termination 安全的终止线程模式
Two Phase Termination 模式
Two Phase Termination 模式表示先执行完终止处理,再终止线程的模式。
模式特点
安全的终止线程
必定会进行线程终止
发出请求后尽快响应终止处理
实际案例
类信息概览:
类名
说明
...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 13-future 未来模式
Future 模式
future 模式类似于一张提货单。
future 意思就是未来、期货(金融领域)。
实际案例
类信息概览:
类名
说明
Main.java
方法的总入口
FutureData.java
未来的数据
...
2019-01-19 03:21:15 |
Thread