关闭

《JAVA并发编程实践》读书笔记(五)

第13章 显式锁在Java 5.0中增加了一种新的机制 :ReentrantLock。13.1 Lock 与 ReentrantLock Lock提供了一种无条件、可轮询、定时的以及可中断的锁获取操作。 public interface Lock{ void lock(); void lockInterruptibly() throws InterruptedExceptio...
阅读(93) 评论(0)

《JAVA并发编程实践》读书笔记(五)

第10章 避免活跃性危险 如果所有的线程以固定的顺序来获得锁,那么在程序中就不会出现锁顺序死锁的问题。10.1 锁顺序死锁 如果存在嵌套的锁获取操作,则很容易发生动态的锁顺序死锁。如果可能出现这种情况,则可以计算存在竞争的两个对象的散列值,按照散列值的大小顺序一致性地加锁。也可以在获得这两个锁之前,使用一种叫做“加时赛”锁的机制去竞争获得锁。如果持有锁的阶段是发生在两个不同的外部方法中,那么将有...
阅读(102) 评论(0)

《JAVA并发编程实践》读书笔记(四)

第8章 线程池的使用 任务和执行策略是隐含耦合的,包括:依赖性任务、使用线程封闭机制执行的任务、对响应时间敏感的任务以及使用ThreadLocal的任务。8.1 处理运行时间较长的任务 采用限定任务等待资源的时间,而不要无限期等待。Java类库大多数可阻塞的方法中,都提供的限定时间的版本和无限时间的版本,如 Thread.join, BlockingQueue.put, CountDownLat...
阅读(121) 评论(0)

《JAVA并发编程实践》读书笔记(三)

第6章 任务执行 大部分并发应用程序都是围绕“任务执行(Task Execution)”来构造,任务通常是一些抽象的且离散的工作单元。 在线程中执行任务,既不能让服务器串行地工作在单线程下,但同时也不能无限制的创建线程,因而产生Executor框架。线程池简化了线程的管理工作,并且java.util.concurrent提供了一种灵活的线程池实现作为Executor框架的一部分。在Java类库中...
阅读(112) 评论(0)

《JAVA并发编程实践》读书笔记(二)

第4章 对象的组合 在Java中,同步经常是与状态挂钩的,想要实现等待某个先验条件为真时才执行的操作,可以通过Java库中的一些阻塞类,例如BlockingQueue, Semaphore以及其他同步工具类来实现(待会会讲到)。同时,同步还涉及到一个状态所有权的问题,在大多数情况下,所有权是与封装性互相关联的:对象封装它拥有的状态。但是容器类表现出“所有权”分离的形式,容器类拥有其自身的状态,而客...
阅读(164) 评论(0)

《JAVA并发编程实践》读书笔记(一)

《JAVA并发编程实践》读书笔记(一)2016年8月1日,“妮妲”冲击广东,全市放假1天。托“妮妲”的福,终于有空将近期的阅读整理一下。 最近利用业余时间重读了Brian Goetz的书,觉得受益匪浅。以前一知半解的概念和用法都在这次阅读中得到了答案。1.并发简史 并发随操作系统的发展而发展起来,操作系统为各个独立执行的进程分配各种资源,包括内存、文件句柄以及安全证书等,不同的进程间可以通过一些...
阅读(434) 评论(0)
    个人资料
    • 访问:1038次
    • 积分:68
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档