01 2021 档案
摘要:8. 共享模型之工具 8.1 线程池 池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完
阅读全文
摘要:7.1 日期转换的问题 如果一个对象在不能够修改其内部状态(属性),那么它就是线程安全的,因为不存在并发修改啊!这样的对象在 Java 中有很多,例如在 Java 8 后,提供了一个新的日期格式化类DateTimeFormatter 可变类内部成员变量是可以改变的就容易出现线程不安全问题‘ 可以用锁
阅读全文
摘要:管程即monitor是阻塞式的悲观锁实现并发控制,这章我们将通过非阻塞式的乐观锁的来实现并发控制 本章内容 CAS 与 volatile原子整数原子引用原子累加器Unsafe 6.1 问题提出 有如下需求,保证account.withdraw取款方法的线程安全 package cn.itcast.t
阅读全文
摘要:5. 共享模型之内存 上一章讲解的 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性。这一章我们进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题 5.1 Java 内存模型 JMM 即 Java Memory Model,它从java层面定义了主存、
阅读全文
摘要:4.13 ReentrantLock 相对于 synchronized 它具备如下特点 可中断可以设置超时时间可以设置为公平锁支持多个条件变量,即对与不满足条件的线程可以放到不同的集合中等待 与 synchronized 一样,都支持可重入 基本语法 // 获取锁 reentrantLock.loc
阅读全文

浙公网安备 33010602011771号