自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 第十三章 显式锁 Java并发编程实战 阅读总结

        在Java5.0之前,在协调对共享对象的访问时可以使用的机制只有synchronized和volatile。 Java 5.0增加了一种新的机制:ReentrantLock。与之前提到过的机制相反,ReentrantLock并不是 一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能。Lock与ReentrantLock        在程序清单 13-1 ...

2018-06-11 17:11:26 228

原创 第十一章 性能与可伸缩性 Java并发编程实战 阅读总结

        线程的最主要目的是提高程序的运行性能。 线程可以使程序更加充分地发挥系统的可用处理能力, 从而提高系统的资源利用率。 此外, 线程还可以使程序在运行现有任务的情况下立即开始处理新的任务, 从而提高系统的响应性。        本章将介绍各种分析、 监测以及提升并发程序性能的技术。 然而,许多提升性能的技术同样会增加复杂性, 因此也就增加了在安全性和活跃性上发生失败的风险。 更糟糕的...

2018-06-11 16:41:11 584

原创 第九章 避免活跃性威胁 Java并发编程实战 阅读总结

        在安全性与活跃性之间通常存在着某种制衡。我们使用加锁机制来确保线程安全, 但如果过度地使用加锁, 则可能导致锁顺序死锁(Lock-Ordering Deadlock) 。同样, 我们使用线程池和信号量来限制对资源的使用, 但这些被限制的行为可能会导致资源死锁(ResourceDeadlock)。Java应用程序无法从死锁中恢复过来, 因此在设计时一定要排除那些可能导致死锁出现的条件...

2018-06-11 16:13:29 160

原创 第七章 取消与关闭 Java并发编程实战 阅读总结

        任务和线程的启动很容易。 在大多数时候, 我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程, 或许是因为用户取消了操作, 或者应用程序需要被快速关闭。        要使任务和线程能安全、快速、可靠地停止下来, 井不是一件容易的事。Java没有提供任何机制来安全地终止线程。但它提供了中断(Interruption), 这是一种协作机制, 能够使...

2018-06-10 23:54:16 227

原创 第六章 任务执行 Java并发编程实战 阅读总结

        大多数并发应用程序都是围绕 “任务执行 (Task Execution)" 来构造的:任务通常是一些抽象的且离散的工作单元。 通过把应用程序的工作分解到多个任务中, 可以简化程序的组织结构, 提供一种自然的事务边界来优化错误恢复过程, 以及提供一种自然的并行工作结构来提升并发性。6.1 在线程中执行任务        当围绕 “任务执行” 来设计应用程序结构时,第一步就是要找出清晰...

2018-06-10 18:22:11 444

原创 第五章 基础构建模块 Java并发编程实战 阅读总结

同步容器类        同步容器类包括 Vector和 Hashtable, 二者是早期 JDK 的一部分, 此外还包括在 JDK 1.2中添加的一些功能相似的类, 这些同步的封装器类是由 Collections.synchronizedXxx 等工厂方法创建的。 这些类实现线程安全的方式是:将它们的状态封装起来, 并对每个公有方法都进行同步, 使得每次只有一个线程能访问容器的状态。同步容器类的...

2018-06-10 17:27:37 167

原创 第四章 对象的组合 Java并发编程实战 阅读总结

设计线程安全的类        在线程安全的程序中,虽然可以将程序的所有状态都保存在公有的静态域中, 但与那些将状态封装起来的程序相比,这些程序的线程安全性更难以得到验证, 并且在修改时也更难以始终确保其线程安全性。通过使用封装技术,可以使得在不对整个程序进行分析的情况下就可以判断一个类是否是线程安全的。在设计线程安全类的过程中·,需要包含以下三个基本要素:a.找出构成对象状态的所有变量。b.找出...

2018-06-09 19:15:38 423

原创 第三章 对象的共享 Java并发编程实战 阅读总结

        要编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。第2章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据, 而本章将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。 这两章合在一 起, 就形成了构建线程安全类以及通过java.util.concurrent 类库来构建并发应用程序的重要基础。        我们已经知道了同步代码块...

2018-06-09 18:49:15 180

原创 第二章 线程安全性 Java并发编程实战 阅读总结

        在构建稳健的并发程序时,必须正确地使用线程和锁。但这些终归只是一些机制。 要编写线程安全的代码,其核心在于要对状态访问操作进行管理, 特别是对共享的(Shared)和可变的(Mutable)状态的访问。          从非正式的意义上来说, 对象的状态是指存储在状态变量(例如实例或静态域)中的数据。对象的状态可能包括其他依赖对象的域。 例如,某个HashMap的状态不仅存储在H...

2018-06-09 17:52:49 183

原创 第一章 简介 Java并发编程实战 阅读总结

1.1 并发简史        在早期的计算机中不包含操作系统,它们从头到尾只执行一个程序,并且这个程序能访问计算机中的所有资源。在这种裸机环境中,不仅很难编写和运行程序, 而且每次只能运行一个程序。        操作系统的出现使得计算机每次能运行多个程序,并且不同的程序都在单独的进程中运行:操作系统为各个独立执行的进程分配各种资源,包括内存,文件句柄以及安全证书等。如果需要的话,在不同的进程之...

2018-06-08 23:48:06 154

原创 走进JAVA 深入理解Java虚拟机总结

Java语言的前身: Oak (橡树)。JAVA优点:1.一门结构严谨、面向对象的编程语言 2.摆脱硬件平台束缚,实现了”一次编写,到处运行“的理想3.提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题4.它实现了热点代码检测和运行时编译及优化,这使得Java应用能随运行时间的增加而获得更高的性能5.有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来...

2018-06-08 17:27:17 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除