随笔分类 - 多线程系列
摘要:Callable 和 Runnable 都可以作为任务去执行,异同点主要表现在以下几点 测试代码如下
阅读全文
摘要:在分析atomic包的时候看到很多类的静态代码块中使用了一下这个方法(例如AtomicInteger) static { try { valueOffset = unsafe.objectFieldOffset (AtomicInteger.clas...
阅读全文
摘要:锁作为 并发共享数据,保证一致性的工具,在java平台有多种实现方式.根据性质来分锁分为很多种,例如,自旋锁,阻塞锁,读写锁,互斥锁等等.今天介绍的是锁的两种分类(从思想上分),乐观锁和悲观锁.悲观锁: 来自百度百科,悲观锁,正如其名,具有强烈的独占和排他特性.它指的是对数据被外界(包括本系统当...
阅读全文
摘要:前言: Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便在多线程环境下进行原子操作。原子变量的底层使用了CPU提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。包介绍:在at...
阅读全文
摘要:红色为核心类,其余为引申类无边框
阅读全文
摘要:CAS(compare and swap) 比较和交换 概述 cas在多线程中是一个保持同步的原子指令。它将内存中指定位置的值与所期望的值比较,只有当内存当中的值和期望的值相同的时候, 才会把内存中的值更新为一个新的值,这是一个原子的操作。如果内存中的值同时被其他线程操作那么此次更改将...
阅读全文

浙公网安备 33010602011771号