摘要: 为什么要使用线程池 谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用。 Java 线程池有以下优点: 减少内存占用;不可能一个任务创建一个线程,更不可能频繁的创建和销毁线程。 解耦;线程的创建于执行完全分开,方便维护。 阅读全文
posted @ 2021-08-04 16:09 代号-G 阅读(193) 评论(0) 推荐(0)
摘要: 字段更新器,主要是用来更新自定义类的字段的。Java 提供以下三种字段更新器: AtomicReferenceFieldUpdater AtomicIntegerFieldUpdater AtomicLongFieldUpdater public class Test5 { private vola 阅读全文
posted @ 2021-08-01 23:00 代号-G 阅读(193) 评论(0) 推荐(0)
摘要: JUC 并发包 中也提供了三个原子应用类型的操作类: AtomicReference AtomicMarkableReference AtomicStampedReference 有时候原子操作不一定是基本数据类型,而是 BigDecimal 类型,所以需要用到这些类。 AtomicReferenc 阅读全文
posted @ 2021-07-15 20:51 代号-G 阅读(143) 评论(0) 推荐(0)
摘要: JUC 并发包 提供了三个原子整数操作: AtomicInteger AtomicLong AtomicBoolean 这三个原理都是一样的,所以这里主要分析以下 AtomicInteger。 值得注意的是:AtomicBoolean 使用 int 类型 0 或 1,表示 bool 类型的 fals 阅读全文
posted @ 2021-07-12 23:47 代号-G 阅读(56) 评论(0) 推荐(0)
摘要: Compare And Swap 就是经常听到的 CAS(比较和交换),它就是将多个原子操作(读-改-写)合并成一个原子操作。 举个例子:i++ 这个自增操作,它可以被拆分成三个操作,读 i 的值、i 的值加 1、写 i 的值;而 CAS 就可以将这三个原子操作,合并成一个原子操作。 比较和交换:先 阅读全文
posted @ 2021-07-07 23:25 代号-G 阅读(512) 评论(0) 推荐(0)
摘要: volatile 的底层实现原理是内存屏障,Memory Barrier(Memory Fence) 对 volatile 变量的写指令后会加入写屏障 对 volatile 变量的读指令前会加入读屏障 对一个 volatile 变量的单个读/写操作,与对一个普通变量的读/写操作使用同一个锁来同步,它 阅读全文
posted @ 2021-07-04 23:23 代号-G 阅读(86) 评论(0) 推荐(0)
摘要: Java 虚拟机内部使用 JMM(Java 内存模型) 将内存划分为两个逻辑单元,线程栈(或者叫本地内存)和堆。 每一个线程都有属于自己的线程栈,在线程栈中会保存局部变量(也叫做本地变量)、方法中定义的参数和异常处理器的参数(catch中的参数);这些参数和变量都属于线程局部操作,会被隔离,所以不受 阅读全文
posted @ 2021-06-26 17:41 代号-G 阅读(107) 评论(0) 推荐(0)
摘要: 在看 ReentrantLock 使用之前,先来了解一下线程活跃性;活跃性分为:死锁、活锁和饥饿。 死锁 一个线程需要获取多把锁的时候,有可能就会发生死锁。 例如下面这个例子: t1 获得 A 对象锁,接下来想获取 B 对象锁 t2 获得 B 对象锁,接下来想获取 A 对象锁 Object A = 阅读全文
posted @ 2021-06-26 13:04 代号-G 阅读(793) 评论(0) 推荐(0)
摘要: LockSupport.park() 和 LockSupport.unpark() 不用在 synchronized 代码块中调用;如果 unpark 可以在 park 之前执行,则 park 不会等待,而是继续向下执行;还有就是 unpark 唤醒线程更加精确。 每个线程都有自己的一个 Parke 阅读全文
posted @ 2021-06-21 21:20 代号-G 阅读(311) 评论(0) 推荐(0)
摘要: 并发(concurrent) 假设计算机只有一个 CPU,则应用程序可能无法完全同时完成多个任务,但是在应用程序中一次可能要完成多项任务。为了同时完成多个任务,CPU 在执行期间会在不同任务之间进行切换。 类似下面这张图一会执行 Task1 一会执行 Task2,但是并不会一起执行。 可能你看到这张 阅读全文
posted @ 2021-06-13 18:27 代号-G 阅读(415) 评论(0) 推荐(0)