-
Java Concurrency In Practice读书笔记
收藏Java Concurrency In Practice是讲述java并发编程的经典著作, 可惜该书的中文版翻译质量不佳. 在啃英文原版的过程中, 有一些总结, 思考, 愿与朋友们分享. 由于我编程经验不足, 英文水平不高, 写作能力不强, 文章里肯定有很多的谬误, 欢迎大家指正
最近更新文章
内置锁和显式锁的区别--JCIP C13读书笔记
[本文是我对Java Concurrency In Practice C13的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
任何java对象都可以用作同步的锁, 为了 ...
如何避免死锁--JCIPC10读书笔记
[本文是我对Java Concurrency In Practice C10的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
如果多个线程以不同的顺序持有多个锁, 可能发生死锁:
public class AccountTrans {
public void transferMoney(Account fromAccount, Account toAc ...
task与execution--JCIPC08读书笔记
[本文是我对Java Concurrency In Practice C08的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
task和线程池执行机制之间隐式的耦合
前面曾提到过, 线程池的应用解耦了task的提交和执行. 事实上, 这有所夸大, 因为不是所有的task都适用于所有的执行机制, 某些task要求在特定的线程池中执行:
1. 非独立task, 指的是 ...
配置ThreadPoolExecutor
[本文是我对Java Concurrency In Practice C08的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
Executors的静态方法newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool所返回的线程池都是ThreadPoolExecutor对象或者其子类对象. ThreadP ...
改善并发性能--JCIP6.3读书笔记
[本文是我对Java Concurrency In Practice 6.3的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
浏览器的页面渲染模块负责HTML标记的处理, 本文以页面渲染为例探讨线程与并发. 为了简化问题, 我们假设只包含文本标记和图片标记.
单线程渲染
使用单线程处理是最简单的方式: 从头至尾扫描HTML文件, 如果遇到文本标记, ...
Executor--JCIP C06读书笔记
[本文是我对Java Concurrency In Practice 6.1/6.2的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
为什么需要使用线程池? one-thread-per-request可能带来的问题:
1. 线程的创建和销毁会占用一定的资源. 如果请求频繁而对请求的处理是轻量级的(大多的web请求符合该情形), 创建一个线程处理请求后将其销毁 ...
设计高效的线程安全的缓存--JCIP5.6读书笔记
[本文是我对Java Concurrency In Practice 5.6的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
几乎每一个应用都会使用到缓存, 但是设计高效的线程安全的缓存并不简单. 如:
public interface Computable<A, V> {
V compute(A arg) throws Interrupt ...
synchronizer--JCIP5.5读书笔记
[本文是我对Java Concurrency In Practice 5.5的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
Synchronizers
synchronizer是指那些根据状态协调线程的对象. BlockingQueue就是一个典型的synchronizer: 当队列为空时, 取数据的消费者线程将被阻塞, 直到队列不为空; 当队列满时, 存入数据 ...
使用BlockingQueue构建生产者消费者模式--JCIP5.3读书笔记
[本文是我对Java Concurrency In Practice 5.3的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
生产者消费者模式
以缓冲区作为生产者和消费者之间沟通的桥梁: 生产者只负责生产, 将生产出来的数据存入缓冲区. 而消费者只负责消费, 不断的从缓冲区中取出数据进行处理.
生产者消费者模式是非常常用的, 因为应用该模式有效的解耦了生产者和消 ...
ConcurrentHashMap和CopyOnWriteArrayList--Java Concurrency In Practice C05读书笔记
[本文是我对Java Concurrency In Practice 5.2的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
ConcurrentHashMap类
我们可以使用Collections.sy ...
线程安全的集合类--Java Concurrency In Practice C05读书笔记
[本文是我对Java Concurrency In Practice 5.1的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
synchronized集合
java集合框架提供了多种synchronized集合, 比如Vector, HashTable, Collections的synchronizedXxx方法的返回值等.
synchronized集合是线程 ...
利用对象限制和委托构建线程安全的类--Java Concurrency In Practice C04读书笔记
[本文是我对Java Concurrency In Practice第三章的归纳和总结. 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
设计线程安全的类需要考虑:
1. 确定组成对象状态的变量.
2. 确定约束对象状态的不变式.
3. 建立并发访问对象状态的规则.
后置条件: 由于某些变量的取值是有限制范围的, 改变状态变量之后需要检查改变后的状态是否合法. 后置 ...
变量可见性和volatile, this逃逸, 不可变对象, 以及安全公开--Java Concurrency In Practice C03读书笔记
[本文是我对Java Concurrency In Practice第三章的归纳和总结, 也有部分语句摘自周志明所著的"深入理解java虚拟机". 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
线程安全包含2个方面: 原子性和可见性, java的同步机制都是围绕这2个方面来确保线程安全的.
可见性
理解可见性首先要清楚为什么多线程环境下会有可见性问 ...
Race condition--Java Concurrency In Practice C02读书笔记
[本文是我对Java Concurrency In Practice第二章的归纳和总结, 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正. ]
多线程环境下,无需调用方进行 ...
- 专栏创建者:coolxing
- 创建时间:2012-04-06 13:24:04
- 专栏文章数:20篇
- 专栏被浏览:97269 次
本专栏热门文章
最新评论
awaitNanos。学到了一个技巧。可以在方法中操作直到有返回值了再返回。类似异步方法调用写得像是同 ...
yuanliangding 评论了 使用BlockingQueue构建生产者消费者模式-- ...
yuanliangding 评论了 使用BlockingQueue构建生产者消费者模式-- ...
hapjin 写道lz,请问下,“ 如果java中的锁不是可重入的,那么调用LoggingWidget ...
wsong 评论了 Race condition--Java Concurrency In Prac ...
wsong 评论了 Race condition--Java Concurrency In Prac ...
lz,请问下,“ 如果java中的锁不是可重入的,那么调用LoggingWidget对象的doSome ...
hapjin 评论了 Race condition--Java Concurrency In Prac ...
hapjin 评论了 Race condition--Java Concurrency In Prac ...