202107-31 程序猿必须要掌握的多线程安全问题之锁策略详解 目录一、常见的锁策略1.1乐观锁1.2悲观锁1.3读写锁1.4公平锁与非公平锁1.5自旋锁(SpinLock)1.6可重入锁1.7相关题目二、CAS问题2.1什么是CAS问题2.2CAS是怎么实现的2.3CAS有哪些应用2.3.1实现自旋锁三、ABA问题3.1什么是ABA问题3.2实现ABA问题场景四、总结一、常见的锁策略1.1乐观锁乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行... 继续阅读 >
202106-23 Java中线程安全问题 一.线程不安全多线程的执行环境中,程序的执行结果和预期的结果不符合,这就称为发生了线程不安全现象二.那些情况导致了线程不安全?大致分为以下5种情况:(1)CPU抢占执行(无法解决);(2)非原子性;(3)编译器优化(指令重排)编译器优化在单线程下执行没问题,多线程下优化会发生混乱;(4)内存的不可见性;(volatile轻量级解决)(5)多个线程修改了同一个变量。(方案:让线程操作自己的变量可以解决该问题,但业... 继续阅读 >
202105-02 Java8新特性之线程安全日期类 LocalDateTimeJava8新特性之一,新增日期类。在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗通过阅读本篇文章你将了解到:为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】Java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改可以使用Instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替SimpleDateF... 继续阅读 >