
《Java 多线程编程核心技术》
《Java 多线程编程核心技术》
bm1998
这个作者很懒,什么都没留下…
展开
-
《Java 多线程编程核心技术》笔记——第7章 拾遗增补
文章目录7.1 线程的状态7.1.1 验证 NEW、RUNNABLE 和 TERMINATED7.1.2 验证 TIMED_WAITING7.1.3 验证 BLOCKED7.1.4 验证 WAITING7.4 SimpleDateFormat 非线程安全7.4.1 出现异常7.4.2 解决异常方法 17.4.3 解决异常方法 27.5 线程中出现异常的处理声明:本博客是本人在学习《Java 多线程编程核心技术》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上原创 2020-12-17 19:46:00 · 192 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第6章 单例模式与多线程
文章目录6.1 立即加载 / “饿汉模式”6.2 延迟加载 / “懒汉模式”6.2.1 延迟加载 / “懒汉模式” 解析6.2.2 延迟加载 / “懒汉模式” 的缺点6.2.3 延迟加载 / “懒汉模式” 的解决方案6.2.3.1 声明 synchronized 关键字6.2.3.2 尝试同步代码块6.3.3.3 针对某些重要的代码进行单独的同步6.3.3.4 使用 DCL 双检查锁机制6.3 使用静态内置类实现单例模式6.4 序列化与反序列化的单例模式实现6.5 使用 static 代码块实现单例模式6原创 2020-12-16 23:54:27 · 131 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第4章 Lock 的使用(二)
文章目录4.1 使用 ReentrantLock 类4.1.10 方法 getHoldCount()、getQueueLength() 和 getWaitQueueLength() 的测试4.1.11 方法 hasQueuedThread()、hasQueuedThreads() 和 hasWaiters() 的测试4.1.12 方法 isFair()、isHeldByCurrentThread() 和 isLocked() 的测试4.1.13 方法 lockInterruptibly()、tryLock(原创 2020-12-15 19:52:18 · 147 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第4章 Lock 的使用(一)
文章目录4.1 使用 ReentrantLock 类4.1.1 使用 ReentrantLock 实现同步:测试14.1.2 使用 ReentrantLock 实现同步:测试24.1.3 使用 Condition 实现等待/通知:错误用法与解决4.1.4 正确使用 Condition 实现等待/通知4.1.5 使用多个 Condition 实现通知部分线程:错误用法4.1.6 使用多个 Condition 实现通知部分线程:正确用法4.1.7 实现生产者/消费者模式:一对一交替打印4.1.8 实现生产者/消原创 2020-12-14 20:54:56 · 121 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第3章 线程间通信(四)
文章目录3.3 类 ThreadLocal 的使用3.3.1 方法 get() 与 null3.3.2 验证线程变量的隔离性3.3.3 解决 get() 返回 null 问题3.3.4 再次验证线程变量的隔离性3.4 类 InheritableThreadLocal 的使用3.4.1 值继承3.4.2 值继承再修改声明:本博客是本人在学习《Java 多线程编程核心技术》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。3.3 类 ThreadLoca原创 2020-12-13 03:57:49 · 157 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第3章 线程间通信(三)
文章目录3.2 方法 join 的使用3.2.1 学习 join 方法前的铺垫3.2.2 用 join() 方法来解决3.2.3 方法 join 与异常3.2.4 方法 join(long) 的使用3.2.5 方法 join(long) 和 sleep(long) 的区别3.2.6 方法 join() 后面的代码提前运行:出现意外3.2.7 方法 join() 后面的代码提前运行:解释意外声明:本博客是本人在学习《Java 多线程编程核心技术》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博原创 2020-12-13 02:08:54 · 162 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第3章 线程间通信(二)
文章目录3.1 等待/通知机制3.1.11 生产者/消费者模式实现3.1.11.1 一生产与一消费:操作值3.1.11.2 多生产与多消费:操作值——假死3.1.11.3 多生产与多消费:操作值3.1.11.4 一生产与一消费:操作栈3.1.11.5 一生成与多消费——操作栈:解决 wait 条件改变和假死3.1.11.6 多生产与一消费3.1.11.7 多生产与多消费:操作栈3.1.12 通过管道进行线程间通信:字节流3.1.13 通过管道进行线程间通信:字符流3.1.14 实战:等待/通知之交换备份原创 2020-12-13 01:33:58 · 220 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第3章 线程间通信(一)
文章目录3.1 等待/通知机制3.1.1 不使用等待/通知机制实现线程间通信3.1.2 什么是等待/通知机制3.1.3 等待/通知机制的实现3.1.4 方法 wait() 锁释放与 notify() 锁不释放3.1.5 当 interrupt 方法遇到 wait 方法3.1.6 只通知一个线程3.1.7 唤醒所有线程3.1.8 方法 wait(long) 的使用3.1.9 通知过早3.1.10 等待 wait 的条件发生变化3.1.11 生产者/消费者模式实现3.1.11.1 一生产与一消费:操作值3.1.原创 2020-08-23 17:15:41 · 224 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(四)
2.3 volatile 关键字关键字 volatile 的主要作用是使变量在多个线程间可见。2.3.1 同步死循环创建一个公共类public class Service1 { private boolean isContinuePrint = true; public boolean isContinuePrint() { return isContinuePrint; } public void setContinuePrint(boole原创 2020-07-08 12:18:06 · 233 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(三)
文章目录2.2 synchronized 同步语句块2.2.9 静态同步 synchronized 方法与 synchronized(class) 代码块2.2.10 数据类型 String 的常量池特性2.2.11 同步 synchronized 方法无限等待与解决2.2.12 多线程的死锁2.3.13 内置类与静态内置类2.2.14 内置类与同步:实验12.2.15 内置类与同步:实验22.2.16 锁对象的改变2.2 synchronized 同步语句块2.2.9 静态同步 synchronize原创 2020-07-08 12:36:06 · 216 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(二)
文章目录2.2 synchronized 同步语句块2.2.1 synchronized 方法的弊端2.2.2 synchronized 同步代码块的使用2.2.3 用同步代码块解决同步方法的弊端2.2.4 一半异步,一半同步2.2.5 synchronized 代码块间的同步性2.2.6 验证同步 synchronized(this) 代码块是锁定当前对象的2.2.7 将任意对象作为对象监视器2.2.8 细化验证 3 个结论2.2.9 静态同步 synchronized 方法与 synchronized(原创 2020-07-08 12:16:28 · 204 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(一)
文章目录2.1 synchronized 同步方法2.1.1 方法内的变量为线程安全2.1.2 实例变量非线程安全2.1.3 多个对象多个锁2.1.4 synchronized 方法与锁对象2.1.5 脏读2.1.6 synchronized 锁重入2.1.7 出现异常,锁自动释放2.1.8 同步不具有继承性2.2 synchronized 同步语句块2.2.1 synchronized 方法的弊...原创 2020-03-13 23:21:07 · 206 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第1章 Java 多线程技能(二)
文章目录1.7 停止线程1.7.1 停止不了的线程1.7.2 判断线程是否是停止状态1.7.3 能停止的线程——异常法1.7.4 在沉睡中停止1.7.5 能停止的线程——暴力停止1.7.6 方法 stop() 与 java.lang.ThreadDeath 异常1.7.7 释放锁的不良后果1.7.8 使用 return 停止线程1.8 暂停线程1.8.1 suspend 与 resume 方法的使用1.8.2 suspend 和 resume 方法的缺点——独占1.8.3 suspend 和 resume原创 2020-07-08 12:08:16 · 318 阅读 · 0 评论 -
《Java 多线程编程核心技术》笔记——第1章 Java 多线程技能(一)
文章目录1.1 进程和多线程的概念及线程的优点1.2 使用多线程1.2.1 继承 Thread 类1.2.2 实现 Runnable 接口1.2.3 实例变量与线程安全1.2.4 留意 i-- 与 System.out.println() 的异常1.3 currentThread() 方法1.4 isAlive() 方法1.5 sleep() 方法1.6 getId() 方法1.7.2 判断线程...原创 2019-11-14 17:37:00 · 301 阅读 · 0 评论