摘要: 背景 之前某需求在触发流控时需要中断ExcutorService中的子线程,发现无论Shutdown、ShutdownNow方法都无法直接停止子线程,今天看到线程的interrupt()方法才了解如何停止。 stop() 和 interrupt() stop方法 stop() 方法会真的杀死线程,不 阅读全文
posted @ 2023-03-18 17:26 kiper 阅读(154) 评论(0) 推荐(0) 编辑
摘要: Java 语言在 1.5 之前,提供的唯一的并发原语就是管程,而且 1.5 之后提供的 SDK 并发包,也是以管程技术为基础的。 管程:管理共享变量以及对共享变量的操作过程,让它们支持并发。 MESA 模型 先后出现过三种不同的管程模型,分别是:Hasen 模型、Hoare 模型和 MESA 模型。 阅读全文
posted @ 2023-03-18 16:26 kiper 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 安全性 并发bug三大源头 源头 原子性问题 可见性问题 有序性问题 bug风险点 存在共享数据并且该数据会发生变化(即多个线程会同时读写同一数据) 分类 数据竞争 当多个线程同时访问同一数据,并且至少有一个线程会写这个数据。 假设 count=0,当两个线程同时执行 get() 方法时,get() 阅读全文
posted @ 2023-03-18 15:37 kiper 阅读(33) 评论(0) 推荐(0) 编辑