随笔分类 -  并发编程

摘要:【volatile 原理】内存屏障、DCL 实现; 【happens-before】可见性和有序性的规则总结 阅读全文
posted @ 2022-04-25 14:49 Jaywee 阅读(45) 评论(0) 推荐(0) 编辑
摘要:主存 & 工作内存、特性(原子性、可见性、有序性) 阅读全文
posted @ 2022-04-25 01:21 Jaywee 阅读(3) 评论(0) 推荐(0) 编辑
摘要:控制多个线程的执行顺序(先后、交替);Monitor 小结 阅读全文
posted @ 2022-04-17 18:00 Jaywee 阅读(48) 评论(0) 推荐(0) 编辑
摘要:锁的粒度、活跃性(死锁、饥饿)、可重入锁(ReentranLock)与 synchronied 的对比 阅读全文
posted @ 2022-04-17 14:51 Jaywee 阅读(82) 评论(0) 推荐(0) 编辑
摘要:synchronized 重量级锁,消耗性能。优化策略:偏向锁、轻量级锁、锁自旋等 阅读全文
posted @ 2022-04-16 18:00 Jaywee 阅读(49) 评论(0) 推荐(0) 编辑
摘要:Monitor 是 synchronized 的底层原理,由 C++ 实现 阅读全文
posted @ 2022-04-16 17:57 Jaywee 阅读(117) 评论(0) 推荐(0) 编辑
摘要:变量的线程安全,包括成员变量、局部变量,基本类型或引用类型。 通过案例练习 API 的使用。 阅读全文
posted @ 2022-04-05 17:47 Jaywee 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1、共享的问题 1.1、故事引入 老王(操作系统)有一个算盘(CPU) 张三和李四是同一个客栈的伙计,张三负责收钱、李四负责采购。 二人互不知道对方的资金情况。 张三(线程)要来借算盘,负责记客栈的收入 张三不可能无时不刻地使用算盘 会有不使用算盘的时候(阻塞),比如 休息(sleep) 吃饭或上厕 阅读全文
posted @ 2022-04-01 18:03 Jaywee 阅读(52) 评论(2) 推荐(0) 编辑
摘要:1、同步模式:保护性暂停 Guarded Suspension 场景:一个线程等待另一个线程的执行结果。 实现:线程关联同一个 GuardedObject 对象,用于在线程之间传递结果。 单任务版:无限期等待、超时等待。 多任务版:基于单任务版 + 集合管理。 JDK 的 join()、Future 阅读全文
posted @ 2022-03-27 20:27 Jaywee 阅读(67) 评论(0) 推荐(0) 编辑
摘要:1、wait/notify 背景知识:synchronized、Monitor 1.1、API 介绍 Object 类提供的方法。 必须成为对象 Monitor 的 Owner,才能调用这两个方法。 1.1.1、wait() 使 Monitor 的 Owner 进入 WaitSet wait(lon 阅读全文
posted @ 2022-03-23 19:19 Jaywee 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1、Thread 注:Thread 类实现了 Runnable 接口。 1.1、创建线程(❗) 通常以匿名内部类的形式创建线程,且通常以 lambda 表达式简化。 建议为每个线程指定线程名。 有 3 种创建线程的方式。 1.1.1、Thread 创建 Thread 匿名内部类,实现 run() 方 阅读全文
posted @ 2022-03-22 19:45 Jaywee 阅读(65) 评论(0) 推荐(0) 编辑
摘要:前言 并发编程涉及知识点 进程与线程 并发与并行 同步与异步 Java 并发工具、并发问题及解决方案 基础知识 接触过 Java Web、JDBC 开发、Web 服务器(最好有分布式框架基础) 基于 JDK 8,了解函数式编程、lambda 表达式 JVM 日志,方便输出调试 相关日志配置:基于 l 阅读全文
posted @ 2022-03-20 15:31 Jaywee 阅读(69) 评论(0) 推荐(0) 编辑

👇