Java并发编程
chrissw
.
展开
-
Java并发编程之集合
Java并发编程之集合1.List, SetCopyOnWriteArrayList相当于线程安全的ArrayList,它实现了List接口。CopyOnWriteArrayList是支持高并发的CopyOnWriteArraySet相当于线程安全的HashSet,它继承于AbstractSet类。CopyOnWriteArraySet内部包含一个CopyOnWriteArrayList...原创 2019-08-14 00:34:31 · 179 阅读 · 0 评论 -
Java并发编程之原子类
Java并发编程之原子类1.AtomicInteger(数组/对象原理均相同)AtomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS(compare-and-swap)技术。从AtomicInteger的内部属性可以看出,它依赖于Unsafe提供的一些底层能力,进行底层操作以volatile的value字段,记录数值,以保证可见性。...原创 2019-08-14 00:35:40 · 134 阅读 · 0 评论 -
Java并发编程之基础多线程
同步/多线程之基础多线程1.操作系统进程/线程状态在现在的操作系统中,因为线程依旧被视为轻量级进程,所以操作系统中线程的状态实际上和进程状态是一致的模型,以下是操作系统中的进程/线程状态:从实际意义上来讲,操作系统中的线程除去new和terminated状态,一个线程真实存在的状态,只有:ready:表示线程已经被创建,正在等待系统调度分配CPU使用权。running:表示线程获得了...原创 2019-08-10 14:59:46 · 132 阅读 · 0 评论 -
Java并发编程之锁
锁1.AQSAQS是java中管理“锁”的抽象类,锁的许多公共方法都是在这个类中实现。AQS是独占锁(例如,ReentrantLock)和共享锁(例如,Semaphore)的公共父类。1.AQS锁的类别分为“独占锁”和“共享锁”两种(01) 独占锁 – 锁在一个时间点只能被一个线程锁占有。根据锁的获取机制,它又划分为“公平锁”和“非公平锁”。公平锁,是按照通过CLH等待线程按照先来先得的...原创 2019-08-11 23:42:06 · 141 阅读 · 0 评论 -
Java并发编程之volatile
Java并发编程之volatile1.两层语义一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止进行指令重排序。当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中...原创 2019-08-11 23:47:58 · 111 阅读 · 0 评论