读书笔记
gonefuture
这个作者很懒,什么都没留下…
展开
-
《Thinking in Java 》读书笔记-11
第11章 持有对象11.1 泛型和类型安全的容器1.2 基本概念CollectionMapList1.3添加一组元素构建一个不包含元素的Collection,然后调用Collection.addAll()这种方式,运行速度快,也比较方便,是首先方式。使用Array.asList()可以使用显式类型参数说明产生的List的实际的目标类型。1.4 容器的...原创 2018-07-31 21:07:00 · 181 阅读 · 0 评论 -
《Java并发编程实战》-10
第11章 性能与可伸缩性11.1 对性能的思考11.1.1 性能与可伸缩性 可伸缩性指的是:当增加计算资源时(例如CPU、内存、存储容量或I/O带宽),程序的吞吐量或处理能力能相应地增加。11.1.2 评估各种性能权衡因素 避免不成熟的优化。首先使程序正确,然后提高运行速度–如果它还运行得不够快。以测试为基准,不要猜测。11.2 Amda...原创 2018-08-21 18:05:56 · 156 阅读 · 0 评论 -
《Java并发编程实战》-9
第10章 避免活跃性危险10.1 死锁哲学家问题10.1.1 锁顺序死锁 如果所有线程以固定的顺序来获得锁,那么在线程中就不会出现锁顺序死锁问题。10.1.2 动态的顺序死锁通过锁顺序来避免死锁10.1.3 在协助对象之间发生的死锁如果在持有锁时调用某个外部方法,那么将出现活跃性问题。在这个外部方法中可能会获取其他锁(这可能会产生死锁),或...原创 2018-08-21 18:04:25 · 390 阅读 · 0 评论 -
《Java并发编程实战》-8
图形用户界面应用程序9.1 为什么GUI是单线程的9.1.1 串行时间处理9.1。2 Swing中的单线程封闭机制 Swing的单线程规则是:Swing中的组件以及模型只能在这个事件分发线程中进行创建、修改以及查询。9.2 短时间的GUI任务模型对象与视图对象的控制流Created with Raphaël 2.1.2EDT鼠标点击动作事件...原创 2018-08-21 18:01:02 · 174 阅读 · 0 评论 -
《Java并发编程实战》-7
线程池的使用8.1 在任务与执行策略之间的隐形耦合并非所有的任务有些任务需要明确地指明执行策略,包括:依赖性任务使用线程封闭机制的任务。对应时间敏感的任务。使用ThreadLocal的任务 在一些任务中,需要拥有或排除某种特定的执行策略。如果某些任务依赖于其他的任务,那么会要求线程池足够大,从而确保它们依赖任务不会被放入等待队列中或者被拒绝,而采用线程封闭机制的任...原创 2018-08-21 18:00:10 · 167 阅读 · 0 评论 -
《Java并发编程实战》-6
取消与关闭行为良好的软件能够完善地处理失败,关闭和取消等过程。7.1任务取消取消某个操作的原因:用户请求取消有时间限制的操作应用程序时间错误关闭7.1.1 中断在Java的API或语言规范中,并没有将中断与任何取消语言关联起来,但实际是激昂,如果在取消之外的其他操作中使用中断,那么都是不合适的,并且很难支撑起更大的应用。public clas...原创 2018-08-21 17:58:59 · 137 阅读 · 0 评论 -
《Java并发编程实战》-5
《Java并发编程实战》-56.1.1 串行地执行renwu6.1.2 显式地为任务创建线程6.1.3 无限制创建线程的不足线程生命周期的开销非常高。资源消耗。稳定性。6.2 Executir框架6.2.1 示例:基于Executor的Web服务器6.2.2 执行策略 每当看到new Thread(runnable).start(...原创 2018-08-21 17:58:02 · 167 阅读 · 0 评论 -
《Java并发编程实战》-2
对象的共享3.1 可见性在没有同步的情况下,编辑器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整。在缺乏足够同步的多线程程序中,想要对内存操作的执行顺序进行判断,几乎无法得出正确的结论。3.1.1 失效数据线程安全的可变整数类@ThreadSafepublic class SynchronizedInteger { @GuardedBy(...原创 2018-08-07 20:47:10 · 984 阅读 · 0 评论 -
《Java并发编程实战》-1
第2章 线程安全性2.1 什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程架构如何交替执行,并且在主调用代码中不需要任何额外的同步或协同,这个类都表示出正确的行为,那么就称这个类是线程安全。 在线程安全类中封装了必要的同步机制,因此客户端无需进一步采用同步措施。 无状态对象一定是线程安全的。2.2 原子性2....原创 2018-08-07 17:46:39 · 157 阅读 · 0 评论 -
《Eeffective Java》读书笔记 - 第二章 创建和销毁对象
第二章 创建和销毁对象2018年7月9日19:12第一条:考虑用静态工厂方法代替构造器 静态工场方法与构造器不同的优势: 他们有名称。 当一个类需要多个带有相同签名的构造时,就用静态工厂方法代替构造器。不必每次调用他们的时候都创建一个新对象。 Flyweight模式,实例受控类他们可以返回原返回类型的任何子类型的对象。 基于接口的框架,服务提供者框架...原创 2018-07-16 19:50:56 · 174 阅读 · 0 评论 -
《Java并发编程实战》-3
对象的组合4.1 设计线程安全的类在设计线程安全类的过程中,需要包含一下三个基本要素:找出构成对象状态的所有变量。找出约束状态变量的不变性条件。建立对象状态的并发访问管理策略。4.1.1 收集同步需求 如果不了解对象的不变性与厚颜条件,那么就不能确保线程安全性。要满足在状态变量的有效值或状态转换上的各种约束条件,就需要结组于原子性和封装性。4.1....原创 2018-08-14 16:43:33 · 252 阅读 · 0 评论 -
《Java并发编程实战》-4
《Java并发编程实战》-45.1 同步容器类Collections.synchronizedXxx等工厂方法创建的同步实现线程安全的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。5.5.1 同步容器的问题在使用客户端加锁的Vector上的复合操作public static Object getList(Vector...原创 2018-08-14 16:39:41 · 528 阅读 · 0 评论 -
《Thinking in Java 》读书笔记-17
《Thinking in Java 》读书笔记-1717.1 完整的容器分类法17.2 填充容器Collections.nCopies()和Collection.fill()都可以用单个对象的引用来填充Collection,并且所有引用都被设置为指向相同的的对象。 fill()方法的用处更为有限,它只能替换已经在List中存在的元素,而不能添加新的元素。17.2.1 ...原创 2018-08-01 21:05:32 · 197 阅读 · 0 评论 -
《Netty实战》-第五章-ByteBuf
《Netty实战》-第五章-ByteBuf5.1 ByteBuf的APINetty的数据处理API通过两个组件暴露—abstract class ByteBuf和interface ByteBufHolder。 下面是一些ByteBuf API的优点:他可以被用户自定义的缓冲区类型扩展通过内置的复合缓冲区类型实现了透明的零拷贝容量可以按需增长(类似于JDK的String...原创 2018-09-13 17:08:30 · 487 阅读 · 0 评论