摘要:
html转pdf 依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.3</version> </dependency> <dependency> <gro 阅读全文
摘要:
原子操作类之18罗汉增强 原子操作类 java.util.concurrent.atomic包下的所有类 上图中分为了两部分,为什么呢? 看下阿里巴巴手册 基本类型原子类 // 可以原子方式更新的值 boolean AtomicBoolean // 可以原子方式更新的 int值 AtomicInte 阅读全文
摘要:
CAS 原子类 java.util.concurrent.atomic包下的所有相关类和API 没有CAS之前 多线程环境不使用原子类保证线程安全i++(基本数据类型),需要用到synchronized锁,但是它比较重,效率不高。 public class Test { volatile int n 阅读全文
摘要:
volatile与JMM volatile修改的变量有两大特点 可见性 写完后立即刷新回主内存并及时发出通知,大家可以去主内存拿最新版,前面的修改对后面所有线程可见 有序性(禁重排) 重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段,有时候会改变程序语句的先后顺序不存在数据 阅读全文
摘要:
Java内存模型之JMM 问题 你知道什么是Java内存模型JMM吗? JMM与volatile它们两个之间的关系?(下一章详细讲解) JMM有哪些特性or它的三大特性是什么? 为什么要有JMM,它为什么出现?作用和功能是什么? happens-before先行发生原则你有了解过吗? 计算机硬件存储 阅读全文
摘要:
线程中断与LockSupport Thread类下的方法 问题 三个方法了解过吗?用在哪? 如何停止一个运行中的线程? 如何中断一个运行中的线程? 中断机制 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thre 阅读全文
摘要:
Java锁 悲观锁 概述 认为自己在使用数据的时候一定有别的线程跟修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。 synchronized关键字和Lock的实现类都是悲观锁 适用场景 适合写操作多的场景,先加锁可以保证写操作时数据正确。 乐观锁 概述 认为自己在使用数据时不会有 阅读全文
摘要:
CompletableFuture Future Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。(异步:可以被叫停,可以被取消) Future接口可以为主线程开一个分支任务,专门为主 阅读全文
摘要:
线程基础知识复习 java8 API文档 https://www.matools.com/api/java8 涉及到并发的包 并发始祖 多线程的好处 提高程序性能,高并发系统 提高程序吞吐量,异步+回调等生产需求 多线程的弊端 线程安全性问题 线程锁问题 线程性能问题 start线程解读 Threa 阅读全文
摘要:
spring 事务 介绍 事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败 事务四个特性(ACID) (1)原子性 (2)一致性 (3)隔离性 (4)持久性 事务的四大特性详解 https://blog.csdn.net/weixin_45730866/artic 阅读全文