![](https://img-blog.csdnimg.cn/20190617091049690.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 多线程总结摘录
文章平均质量分 78
关于 Java 多线程的总结摘录,整理便于查看。
DoubleFJ
只有回不去的过去,没有到不了的未来。
展开
-
走近 Java 世界中的线程
本文摘抄自《Java 多线程编程实战指南》核心篇 第一章小结 个人博客:DoubleFJ の Blog本章介绍了线程、多线程编程这两个基本概念以及 Java 平台对线程的实现。进程是程序的运行实例,一个进程可以包含多个线程,这些线程共享其所在进程的资源。线程是进程中可独立执行的最小单位。 Java 标准库类 java.lang.Thread 就是 Java 平台对线程的实现。...原创 2019-06-17 09:26:31 · 161 阅读 · 0 评论 -
多线程编程的目标与挑战
本文摘抄自《Java 多线程编程实战指南》核心篇 第二章小结个人博客:DoubleFJ の Blog本章通过一些具体概念介绍了多线程编程的目标及其面临的挑战。单线程程序所进行的计算本质上是串行。多线程编程的目标是将原本串行的计算改为并发乃至并行。竞态(Race Condition)是指计算的正确性依赖于相对时间顺序(Relative Timing)或者线程的交错(Interle...原创 2019-07-09 09:33:19 · 211 阅读 · 0 评论 -
Java 线程同步机制
本文摘抄自《Java 多线程编程实战指南》核心篇 第三章小结个人博客:DoubleFJ の Blog本章介绍了 Java 平台提供的各种线程同步机制。 Java 线程同步机制的幕后助手是内存屏障。不同同步机制的功能强弱不同,相应的开销以及可能导致的问题也不同,如下表所示。因此,我们需要根据实际情况选择一个功能适用且开销较小的同步机制。Java 线程同步机制的功能与开销/问题...原创 2019-07-15 09:33:34 · 471 阅读 · 0 评论 -
在实践中运用多线程
本文摘抄自《Java 多线程编程实战指南》核心篇 第四章小结个人博客:DoubleFJ の Blog本章介绍了利用多线程实现并发计算的基本方法以及多线程编程实践中的注意事项及应对措施。 挖掘出程序中的可并发点是实现多线程编程的目标——并发计算的前提。 实现并发化的策略包括基于数据的分割策略和基于任务的分割策略。前者从程序处理的数据角度入手,将原始输入分解为若干规模更小的子输入,并...原创 2019-07-22 09:53:50 · 218 阅读 · 0 评论 -
线程间协作
本文摘抄自《Java 多线程编程实战指南》核心篇 第五章小结个人博客:DoubleFJ の Blog本章介绍了多线程编程中线程间常见的协作形式以及 Java 平台对这些协作形式所提出的支持。 等待线程可以通过执行 Object.wait()/wait(long) 来实现等待。通知线程可以通过执行 Object.notify()/notifyAll() 来实现通知。等待线程/通知线程在...原创 2019-07-29 14:24:59 · 131 阅读 · 0 评论 -
保障线程安全的设计技术
本文摘抄自《Java 多线程编程实战指南》核心篇 第六章小结个人博客:DoubleFJ の Blog本章从面向对象编程的角度出发讲解了实现线程安全的几种常用技术。这些技术的运用通常可以产生具有固有线程安全性的对象,即这些对象本身无须借助锁就可以保障线程安全,从而有利于提高系统的并发性。本章还介绍了同步集合和并发集合。 Java 运行时空间可分为堆空间/非堆空间以及栈空间。 栈空间是线...原创 2019-08-19 10:10:13 · 179 阅读 · 0 评论 -
线程的活性故障
本文摘抄自《Java 多线程编程实战指南》核心篇 第七章小结个人博客:DoubleFJ の Blog本章介绍了常见的线程活性故障以及相应的规避措施。 死锁会导致相关线程一直被暂停使得其任务无法进展。产生死锁的必要条件包括:资源互斥/资源不可抢夺/占用并等待资源以及循环等待资源。 我们可以通过查看线程转储手工检测死锁,也可以利用 ThreadMXBean.findDeadlockedT...原创 2019-08-26 16:18:21 · 292 阅读 · 0 评论 -
线程管理
本文摘抄自《Java 多线程编程实战指南》核心篇 第八章小结个人博客:DoubleFJ の Blog本章介绍了如何将线程管控起来以便高效/可靠地利用线程这种有限地资源。 线程组是 Thread.UncaughtExceptionHandler 的一个实现类,它可以帮助我们检测线程的异常终止。多数情况下,我们可以忽略线程组这一概念以及线程组的存在。 Thread.UncaughtE...原创 2019-09-02 13:58:16 · 202 阅读 · 0 评论 -
Java 异步编程
本文摘抄自《Java 多线程编程实战指南》核心篇 第九章小结个人博客:DoubleFJ の Blog本章介绍了同步计算与异步计算的概念,并介绍了 Java 平台对异步计算所提供的相关 API。 从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的。同步方式的优点是代码简单/直观,缺点是它往往意味着阻塞,因此不利于系统的吞吐率。异步方式的优点则是它往往意味着非阻塞,因此有利...原创 2019-09-02 14:03:55 · 521 阅读 · 0 评论 -
多线程编程的硬件基础与 Java 内存模型
本文摘抄自《Java 多线程编程实战指南》核心篇 第十一章小结个人博客:DoubleFJ の Blog本章介绍了多线程编程的硬件基础以及 Java 内存模型的基础知识。 高速缓存是一个存取速率远比主内存大而容量远比主内存小的存储部件,其引入弥补了处理器与主内存处理能力之间的鸿沟。高速缓存相当于一个由硬件实现的散列表,其键为内存地址,其值为从内存读取或者准备写入内存的数据。 高速缓存中...原创 2019-09-09 17:53:00 · 211 阅读 · 0 评论 -
Java 多线程程序的性能调校
本文摘抄自《Java 多线程编程实战指南》核心篇 第十二章小结个人博客:DoubleFJ の Blog本章介绍了与 Java 多线程程序紧密相关的性能调校常用技术。 Java 虚拟机自 Java 6 开始对内部锁进行了若干优化:锁消除、锁粗化、偏向锁以及适应性锁。除锁消除是 Java 7 开始引入的,其他优化均是在 Java 6 开始引入的,这些优化仅在 Java 虚拟机的 serv...原创 2019-09-26 15:12:45 · 191 阅读 · 0 评论