博客专栏 -凯发k8国际

java concurrency in practice读书笔记

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

分享到:

最近更新文章

[本文是我对java concurrency in practice c14.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  java类库中包含许多状态依赖的类: 其中的某些方法只有满足特定的前置条件才能继续, 比如blockingqueue的take方法, 只有队列不为空时take方法才能返回. 状态依赖的操作一般如下: void blockingac ...
有2552人浏览 2012-04-11 10:24
[本文是我对java concurrency in practice c13的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 任何java对象都可以用作同步的锁, 为了� ...
有5688人浏览 2012-04-11 10:17
[本文是我对java concurrency in practice c11的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  可扩展性和amdahl's law--阿姆达尔定律 scalability describes the ability to improve throughput or capacity when additional resource ...
有2396人浏览 2012-04-10 14:40
[本文是我对java concurrency in practice c10的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 如果多个线程以不同的顺序持有多个锁, 可能发生死锁:   public class accounttrans { public void transfermoney(account fromaccount, account toac ...
有2912人浏览 2012-04-10 10:08
[本文是我对java concurrency in practice c08的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] task和线程池执行机制之间隐式的耦合 前面曾提到过, 线程池的应用解耦了task的提交和执行. 事实上, 这有所夸大, 因为不是所有的task都适用于所有的执行机制, 某些task要求在特定的线程池中执行: 1. 非独立task, 指的是 ...
有2306人浏览 2012-04-09 10:34
[本文是我对java concurrency in practice c08的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] executors的静态方法newcachedthreadpool, newfixedthreadpool, newscheduledthreadpool所返回的线程池都是threadpoolexecutor对象或者其子类对象. threadp ...
有6091人浏览 2012-04-09 10:34
[本文是我对java concurrency in practice 7.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 以executorservice为例, 该类内部封装有多个线程, 类外部无法直接停止这些线程. 相反, 外部调用service的shutdown和shutdownnow方法关闭service, 而service负责停止其拥有的线程. 大多数s ...
有2264人浏览 2012-04-06 10:28
[本文是我对java concurrency in practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 并不是所有的阻塞都是可中断的, 比如inpu ...
有5591人浏览 2012-04-06 10:23
[本文是我对java concurrency in practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]   在java的中断机制中, interruptedexception异常占据重要的位置. 处理interruptedexception异常的方式有:   1. 不catch直接向上层抛出, 或者catch住做一些清理工作之后重抛该异常. ...
有5986人浏览 2012-04-05 14:08
[本文是我对java concurrency in practice 7.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 启动线程之后, 大多数时候我们等待线程运行完成后自动结束. 但是有时我们希望可以提前终止线程的运行: 1. 用户申请取消时. 比如用户点击了取消按钮. 2. 时间限制的任务. 有些任务具有时间限制, 如果在一定的时间内仍然没有得到想要的结果 ...
有2520人浏览 2012-04-05 14:03
[本文是我对java concurrency in practice 6.3的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] 浏览器的页面渲染模块负责html标记的处理, 本文以页面渲染为例探讨线程与并发. 为了简化问题, 我们假设只包含文本标记和图片标记.   单线程渲染 使用单线程处理是最简单的方式: 从头至尾扫描html文件, 如果遇到文本标记, ...
有2484人浏览 2012-04-02 11:51
[本文是我对java concurrency in practice 6.1/6.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  为什么需要使用线程池? one-thread-per-request可能带来的问题: 1. 线程的创建和销毁会占用一定的资源. 如果请求频繁而对请求的处理是轻量级的(大多的web请求符合该情形), 创建一个线程处理请求后将其销毁 ...
有2783人浏览 2012-04-02 09:28
[本文是我对java concurrency in practice 5.6的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  几乎每一个应用都会使用到缓存, 但是设计高效的线程安全的缓存并不简单. 如: public interface computable { v compute(a arg) throws interrupt ...
有5738人浏览 2012-04-01 22:49
[本文是我对java concurrency in practice 5.5的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  synchronizers synchronizer是指那些根据状态协调线程的对象. blockingqueue就是一个典型的synchronizer: 当队列为空时, 取数据的消费者线程将被阻塞, 直到队列不为空; 当队列满时, 存入数据 ...
有2250人浏览 2012-04-01 22:44
[本文是我对java concurrency in practice 5.3的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  生产者消费者模式 以缓冲区作为生产者和消费者之间沟通的桥梁: 生产者只负责生产, 将生产出来的数据存入缓冲区. 而消费者只负责消费, 不断的从缓冲区中取出数据进行处理. 生产者消费者模式是非常常用的, 因为应用该模式有效的解耦了生产者和消 ...
有4499人浏览 2012-03-31 17:32
[本文是我对java concurrency in practice 5.2的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] concurrenthashmap类 我们可以使用collections.sy ...
有3962人浏览 2012-03-31 11:27
[本文是我对java concurrency in practice 5.1的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ] synchronized集合 java集合框架提供了多种synchronized集合, 比如vector, hashtable, collections的synchronizedxxx方法的返回值等. synchronized集合是线程 ...
有14096人浏览 2012-03-28 18:26
[本文是我对java concurrency in practice第三章的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  设计线程安全的类需要考虑: 1. 确定组成对象状态的变量. 2. 确定约束对象状态的不变式. 3. 建立并发访问对象状态的规则.   后置条件: 由于某些变量的取值是有限制范围的, 改变状态变量之后需要检查改变后的状态是否合法. 后置 ...
有3758人浏览 2012-03-27 18:23
[本文是我对java concurrency in practice第三章的归纳和总结, 也有部分语句摘自周志明所著的"深入理解java虚拟机".  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  线程安全包含2个方面: 原子性和可见性, java的同步机制都是围绕这2个方面来确保线程安全的.   可见性 理解可见性首先要清楚为什么多线程环境下会有可见性问 ...
有12444人浏览 2012-03-26 21:55
[本文是我对java concurrency in practice第二章的归纳和总结,  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]   多线程环境下,无需调用方进行 ...
有4896人浏览 2012-03-26 10:17
  • 专栏创建者:
  • 创建时间:2012-04-06 13:24:04
  • 专栏文章数:20篇
  • 专栏被浏览:95216 次

本专栏热门文章

最新评论

博主应该把vector设定为全局变量,更加清晰一些
筑浪小子 评论了
我的印象中就是1. 尽量不要同时持有多个锁.^_^
yuanliangding 评论了
原来这个叫race condition哦。
yuanliangding 评论了
awaitnanos。学到了一个技巧。可以在方法中操作直到有返回值了再返回。类似异步方法调用写得像是同 ...
yuanliangding 评论了
hapjin 写道lz,请问下,“ 如果java中的锁不是可重入的,那么调用loggingwidget ...
wsong 评论了
lz,请问下,“ 如果java中的锁不是可重入的,那么调用loggingwidget对象的dosome ...
hapjin 评论了
您好,请问下您的最后一个java示例中: public class onecashedvalue { ...
hapjin 评论了
volatile 能保证 单个读/写的原子性
breadviking 评论了
有些深奥,还有些看不懂。
逐客叫我 评论了
第二段代码中的start、end要加上volatile修饰符
heipacker 评论了
global site tag (gtag.js) - google analytics
网站地图