Java Concurrency In Practice读书笔记
收藏

Java Concurrency In Practice是讲述java并发编程的经典著作, 可惜该书的中文版翻译质量不佳. 在啃英文原版的过程中, 有一些总结, 思考, 愿与朋友们分享. 由于我编程经验不足, 英文水平不高, 写作能力不强, 文章里肯定有很多的谬误, 欢迎大家指正

分享到: Sina Tec

最近更新文章

状态依赖的类--JCIP C14.1读书笔记

[本文是我对Java Concurrency In Practice C14.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  java类库中包含许多状态依赖的类: 其中的某些方法只有满足特定的前置条件才能继续, 比如BlockingQueue的take方法, 只有队列不为空时take方法才能返回. 状态依赖的操作一般如下: void blockingAc ...
coolxing 评论(0) 有2595人浏览 2012-04-11 10:24

内置锁和显式锁的区别--JCIP C13读书笔记

[本文是我对Java Concurrency In Practice C13的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 任何java对象都可以用作同步的锁, 为了 ...
coolxing 评论(0) 有5721人浏览 2012-04-11 10:17

改善并发程序的可扩展性--JCIP C11读书笔记

[本文是我对Java Concurrency In Practice C11的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  可扩展性和Amdahl's law--阿姆达尔定律 Scalability describes the ability to improve throughput or capacity when additional resource ...
coolxing 评论(0) 有2431人浏览 2012-04-10 14:40

如何避免死锁--JCIPC10读书笔记

[本文是我对Java Concurrency In Practice C10的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 如果多个线程以不同的顺序持有多个锁, 可能发生死锁:   public class AccountTrans { public void transferMoney(Account fromAccount, Account toAc ...
coolxing 评论(1) 有2999人浏览 2012-04-10 10:08

task与execution--JCIPC08读书笔记

[本文是我对Java Concurrency In Practice C08的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] task和线程池执行机制之间隐式的耦合 前面曾提到过, 线程池的应用解耦了task的提交和执行. 事实上, 这有所夸大, 因为不是所有的task都适用于所有的执行机制, 某些task要求在特定的线程池中执行: 1. 非独立task, 指的是 ...
coolxing 评论(0) 有2338人浏览 2012-04-09 10:34

配置ThreadPoolExecutor

[本文是我对Java Concurrency In Practice C08的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] Executors的静态方法newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool所返回的线程池都是ThreadPoolExecutor对象或者其子类对象. ThreadP ...
coolxing 评论(0) 有6122人浏览 2012-04-09 10:34

停止基于线程的Service--JCIP7.2读书笔记

[本文是我对Java Concurrency In Practice 7.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 以ExecutorService为例, 该类内部封装有多个线程, 类外部无法直接停止这些线程. 相反, 外部调用Service的shutDown和shutDownNow方法关闭Service, 而Service负责停止其拥有的线程. 大多数s ...
coolxing 评论(0) 有2289人浏览 2012-04-06 10:28

处理不可中断的阻塞-JCIP7.1读书笔记

[本文是我对Java Concurrency In Practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 并不是所有的阻塞都是可中断的, 比如Inpu ...
coolxing 评论(0) 有5631人浏览 2012-04-06 10:23

处理InterruptedException异常--JCIP7.1读书笔记

[本文是我对Java Concurrency In Practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]   在java的中断机制中, InterruptedException异常占据重要的位置. 处理InterruptedException异常的方式有:   1. 不catch直接向上层抛出, 或者catch住做一些清理工作之后重抛该异常. ...
coolxing 评论(0) 有6039人浏览 2012-04-05 14:08

中断线程--JCIP7.1读书笔记

[本文是我对Java Concurrency In Practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 启动线程之后, 大多数时候我们等待线程运行完成后自动结束. 但是有时我们希望可以提前终止线程的运行: 1. 用户申请取消时. 比如用户点击了取消按钮. 2. 时间限制的任务. 有些任务具有时间限制, 如果在一定的时间内仍然没有得到想要的结果 ...
coolxing 评论(0) 有2549人浏览 2012-04-05 14:03

改善并发性能--JCIP6.3读书笔记

[本文是我对Java Concurrency In Practice 6.3的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 浏览器的页面渲染模块负责HTML标记的处理, 本文以页面渲染为例探讨线程与并发. 为了简化问题, 我们假设只包含文本标记和图片标记.   单线程渲染 使用单线程处理是最简单的方式: 从头至尾扫描HTML文件, 如果遇到文本标记, ...
coolxing 评论(0) 有2510人浏览 2012-04-02 11:51

Executor--JCIP C06读书笔记

[本文是我对Java Concurrency In Practice 6.1/6.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  为什么需要使用线程池? one-thread-per-request可能带来的问题: 1. 线程的创建和销毁会占用一定的资源. 如果请求频繁而对请求的处理是轻量级的(大多的web请求符合该情形), 创建一个线程处理请求后将其销毁 ...
coolxing 评论(2) 有2813人浏览 2012-04-02 09:28

设计高效的线程安全的缓存--JCIP5.6读书笔记

[本文是我对Java Concurrency In Practice 5.6的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  几乎每一个应用都会使用到缓存, 但是设计高效的线程安全的缓存并不简单. 如: public interface Computable<A, V> { V compute(A arg) throws Interrupt ...
coolxing 评论(5) 有5779人浏览 2012-04-01 22:49

synchronizer--JCIP5.5读书笔记

[本文是我对Java Concurrency In Practice 5.5的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  Synchronizers synchronizer是指那些根据状态协调线程的对象. BlockingQueue就是一个典型的synchronizer: 当队列为空时, 取数据的消费者线程将被阻塞, 直到队列不为空; 当队列满时, 存入数据 ...
coolxing 评论(0) 有2281人浏览 2012-04-01 22:44

使用BlockingQueue构建生产者消费者模式--JCIP5.3读书笔记

[本文是我对Java Concurrency In Practice 5.3的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  生产者消费者模式 以缓冲区作为生产者和消费者之间沟通的桥梁: 生产者只负责生产, 将生产出来的数据存入缓冲区. 而消费者只负责消费, 不断的从缓冲区中取出数据进行处理. 生产者消费者模式是非常常用的, 因为应用该模式有效的解耦了生产者和消 ...
coolxing 评论(1) 有4524人浏览 2012-03-31 17:32

ConcurrentHashMap和CopyOnWriteArrayList--Java Concurrency In Practice C05读书笔记

[本文是我对Java Concurrency In Practice 5.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] ConcurrentHashMap类 我们可以使用Collections.sy ...
coolxing 评论(0) 有3990人浏览 2012-03-31 11:27

线程安全的集合类--Java Concurrency In Practice C05读书笔记

[本文是我对Java Concurrency In Practice 5.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] synchronized集合 java集合框架提供了多种synchronized集合, 比如Vector, HashTable, Collections的synchronizedXxx方法的返回值等. synchronized集合是线程 ...
coolxing 评论(1) 有14150人浏览 2012-03-28 18:26

利用对象限制和委托构建线程安全的类--Java Concurrency In Practice C04读书笔记

[本文是我对Java Concurrency In Practice第三章的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  设计线程安全的类需要考虑: 1. 确定组成对象状态的变量. 2. 确定约束对象状态的不变式. 3. 建立并发访问对象状态的规则.   后置条件: 由于某些变量的取值是有限制范围的, 改变状态变量之后需要检查改变后的状态是否合法. 后置 ...
coolxing 评论(0) 有3782人浏览 2012-03-27 18:23

变量可见性和volatile, this逃逸, 不可变对象, 以及安全公开--Java Concurrency In Practice C03读书笔记

[本文是我对Java Concurrency In Practice第三章的归纳和总结, 也有部分语句摘自周志明所著的"深入理解java虚拟机".  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  线程安全包含2个方面: 原子性和可见性, java的同步机制都是围绕这2个方面来确保线程安全的.   可见性 理解可见性首先要清楚为什么多线程环境下会有可见性问 ...
coolxing 评论(4) 有12485人浏览 2012-03-26 21:55

Race condition--Java Concurrency In Practice C02读书笔记

[本文是我对Java Concurrency In Practice第二章的归纳和总结,  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]   多线程环境下,无需调用方进行 ...
coolxing 评论(5) 有4926人浏览 2012-03-26 10:17
  • 专栏创建者:coolxing
  • 创建时间:2012-04-06 13:24:04
  • 专栏文章数:20篇
  • 专栏被浏览:95954 次

本专栏热门文章

最新评论

博主应该把vector设定为全局变量,更加清晰一些
筑浪小子 评论了 线程安全的集合类--Java Concurrency In Pr ...
我的印象中就是1. 尽量不要同时持有多个锁.^_^
yuanliangding 评论了 如何避免死锁--JCIPC10读书笔记
原来这个叫race condition哦。
yuanliangding 评论了 Race condition--Java Concurrency In Prac ...
awaitNanos。学到了一个技巧。可以在方法中操作直到有返回值了再返回。类似异步方法调用写得像是同 ...
yuanliangding 评论了 使用BlockingQueue构建生产者消费者模式-- ...
hapjin 写道lz,请问下,“ 如果java中的锁不是可重入的,那么调用LoggingWidget ...
wsong 评论了 Race condition--Java Concurrency In Prac ...
lz,请问下,“ 如果java中的锁不是可重入的,那么调用LoggingWidget对象的doSome ...
hapjin 评论了 Race condition--Java Concurrency In Prac ...
您好,请问下您的最后一个JAVA示例中: public class OneCashedValue { ...
hapjin 评论了 变量可见性和volatile, this逃逸, 不可变对 ...
volatile 能保证 单个读/写的原子性
breadviking 评论了 变量可见性和volatile, this逃逸, 不可变对 ...
有些深奥,还有些看不懂。
逐客叫我 评论了 变量可见性和volatile, this逃逸, 不可变对 ...
第二段代码中的start、end要加上volatile修饰符
heipacker 评论了 变量可见性和volatile, this逃逸, 不可变对 ...
Global site tag (gtag.js) - Google Analytics