java并发编程
文章平均质量分 66
学习java并发编程的笔记
浮华1994
谦卑是做人的首要准则,是一个人最好的修行素养
展开
-
ForkJoinPool使用
概念Fork/Join 是 JDK 1.7 加入的新的线程池实现,它体现的是一种分治思想,适用于能够进行任务拆分的 cpu 密集型运算所谓的任务拆分,是将一个大任务拆分为算法上相同的小任务,直至不能拆分可以直接求解。跟递归相关的一些计算,如归并排序、斐波那契数列、都可以用分治思想进行求解Fork/Join 在分治的基础上加入了多线程,可以把每个任务的分解和合并交给不同的线程来完成,进一步提升了运算效率Fork/Join 默认会创建与 cpu 核心数大小相同的线程池使用提交给 Fork/Join原创 2021-04-21 10:59:35 · 755 阅读 · 0 评论 -
线程池实现每周四18:00:00执行定时任务
/** * 测试定时任务 实现每周四18:00:00执行定时任务 * * @author sunfeng * @date 2021/04/21 08:46 **/@Slf4j(topic = "c.TestScheduled")public class TestScheduled { public static void main(String[] args) { // 获取当前时间 LocalDateTime now = LocalDateTime.原创 2021-04-21 09:53:46 · 459 阅读 · 0 评论 -
第六章、共享模型之无锁(第一部分)
本章内容CAS 与 volatile原子整数原子引用原子累加器Unsafe问题提出有如下需求,保证 account.withdraw 取款方法的线程安全/** * @author sunfeng * @date 2021/04/14 10:50 **/public interface Account { // 获取余额 Integer getBalance(); // 取款 void withdraw(Integer amount);转载 2021-04-14 14:13:29 · 111 阅读 · 0 评论 -
线程安全单例习题
单例模式有很多实现方法,饿汉、懒汉、静态内部类、枚举类,试分析每种实现下获取单例对象(即调用getInstance)时的线程安全,并思考注释中的问题饿汉式:类加载就会导致该单实例对象被创建懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建实现1:// 问题1:为什么加 final// 问题2:如果实现了序列化接口, 还要做什么来防止反序列化破坏单例 public final class Singleton implements Serializable { // 问题3:为原创 2021-04-13 22:07:59 · 162 阅读 · 0 评论 -
happens-before原则
happens-beforehappens−before规则规定了对共享变量的写操作对其它线程的读操作可见\color{red} happens-before规则 规定了对共享变量的写操作对其它线程的读操作可见happens−before规则规定了对共享变量的写操作对其它线程的读操作可见,它是可见性与有序性的一套规则总结,抛开以下 happens-before 规则,JMM 并不能保证一个线程对共享变量的写,对于其它线程对该共享变量的读可见程序的顺序性规则:\color{red}程序的顺序性规则:程序原创 2021-04-13 21:56:19 · 83 阅读 · 0 评论 -
double-checked locking 问题
以著名的 double-checked locking 单例模式为例问题分析/** * dcl double checked locking 问题 */public class Singleton { private Singleton() { } private static Singleton INSTANCE = null; public static Singleton getInstance() { if (INSTANCE ==原创 2021-04-13 21:25:22 · 320 阅读 · 0 评论 -
第五章、共享模型之内存
深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题Java 内存模型JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。JMM 体现在以下几个方面原子性 - 保证指令不会受到线程上下文切换的影响可见性 - 保证指令不会受 cpu 缓存的影响有序性 - 保证指令不会受 cpu 指令并行优化的影响可见性退不出的循环先来看一个现象,main 线程对 run 变量的修改对于 t原创 2021-04-13 18:07:34 · 120 阅读 · 0 评论