267250Java 多线程开发之 Callable 与线程池(三) 2018-03-08我们常见的创建线程的方式有 2 种:继承 Thread 和 实现 Runnable 接口。 其实,在 JDK 中还提供了另外 2 种 API 让开发者使用。 Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式: 实现 Callable 接口。
256390Java 多线程开发之原子变量与 CAS 算法(二) 2018-01-16在上篇《Java 多线程开发之 volatile(一)》文章中介绍了 volatile 的相关内容,它是一个轻量级的锁,但不支持原子操作。 本篇将介绍原子操作相关内容。 CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问。
252731Java 多线程开发之 volatile(一) 2018-01-15Java 提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。 我们可以将 volatile 看做一个轻量级的锁,但是又与锁有些不同: Java 内存模型规定了所有的变量(此处的变量是指成员变量和静态变量)都存储在主内存中,每条线程都有自己的工作内存。