随笔分类 -  juc

摘要:ThreadLocal 介绍 ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。 ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用户 阅读全文
posted @ 2023-04-12 17:03 橙香五花肉 阅读(20) 评论(0) 推荐(0) 编辑
摘要:原子操作类之18罗汉增强 原子操作类 java.util.concurrent.atomic包下的所有类 上图中分为了两部分,为什么呢? 看下阿里巴巴手册 基本类型原子类 // 可以原子方式更新的值 boolean AtomicBoolean // 可以原子方式更新的 int值 AtomicInte 阅读全文
posted @ 2023-02-21 14:54 橙香五花肉 阅读(22) 评论(0) 推荐(0) 编辑
摘要:CAS 原子类 java.util.concurrent.atomic包下的所有相关类和API 没有CAS之前 多线程环境不使用原子类保证线程安全i++(基本数据类型),需要用到synchronized锁,但是它比较重,效率不高。 public class Test { volatile int n 阅读全文
posted @ 2023-02-07 11:03 橙香五花肉 阅读(81) 评论(0) 推荐(0) 编辑
摘要:volatile与JMM volatile修改的变量有两大特点 可见性 写完后立即刷新回主内存并及时发出通知,大家可以去主内存拿最新版,前面的修改对后面所有线程可见 有序性(禁重排) 重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段,有时候会改变程序语句的先后顺序不存在数据 阅读全文
posted @ 2023-02-06 15:14 橙香五花肉 阅读(14) 评论(0) 推荐(0) 编辑
摘要:Java内存模型之JMM 问题 你知道什么是Java内存模型JMM吗? JMM与volatile它们两个之间的关系?(下一章详细讲解) JMM有哪些特性or它的三大特性是什么? 为什么要有JMM,它为什么出现?作用和功能是什么? happens-before先行发生原则你有了解过吗? 计算机硬件存储 阅读全文
posted @ 2023-02-02 16:49 橙香五花肉 阅读(88) 评论(3) 推荐(0) 编辑
摘要:线程中断与LockSupport Thread类下的方法 问题 三个方法了解过吗?用在哪? 如何停止一个运行中的线程? 如何中断一个运行中的线程? 中断机制 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thre 阅读全文
posted @ 2023-01-31 10:33 橙香五花肉 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Java锁 悲观锁 概述 认为自己在使用数据的时候一定有别的线程跟修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。 synchronized关键字和Lock的实现类都是悲观锁 适用场景 适合写操作多的场景,先加锁可以保证写操作时数据正确。 乐观锁 概述 认为自己在使用数据时不会有 阅读全文
posted @ 2023-01-30 11:09 橙香五花肉 阅读(33) 评论(0) 推荐(0) 编辑
摘要:CompletableFuture Future Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。(异步:可以被叫停,可以被取消) Future接口可以为主线程开一个分支任务,专门为主 阅读全文
posted @ 2022-12-27 14:17 橙香五花肉 阅读(104) 评论(0) 推荐(0) 编辑
摘要:线程基础知识复习 java8 API文档 https://www.matools.com/api/java8 涉及到并发的包 并发始祖 多线程的好处 提高程序性能,高并发系统 提高程序吞吐量,异步+回调等生产需求 多线程的弊端 线程安全性问题 线程锁问题 线程性能问题 start线程解读 Threa 阅读全文
posted @ 2022-12-16 11:40 橙香五花肉 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示