《java并发编程实战》(二)
2023-09-11 14:22:19 时间
看《java并发编程实战》一书时,在33-34页中,对里面的例子不是很理解,究竟该怎么理解“不要在构造过程中使this引用逸出”,后来在segmentfault中找到一个问题,看完才有点理解。现作记录:
原文出处:https://segmentfault.com/q/1010000007900854/a-1020000018104804
才发现,书中给出的实例代码只是片段而已,并不完整。看书时可以到http://jcip.net/listings去找对应篇章的完整代码,不然只看书中的代码片段是很难理解文中想表达的意思的。
比如书中程序清单3-7的完整代码如下:
package net.jcip.examples; /** * ThisEscape * <p/> * Implicitly allowing the this reference to escape * * @author Brian Goetz and Tim Peierls */ public class ThisEscape { public ThisEscape(EventSource source) { source.registerListener(new EventListener() { public void onEvent(Event e) { doSomething(e); } }); } void doSomething(Event e) { } interface EventSource { void registerListener(EventListener e); } interface EventListener { void onEvent(Event e); } interface Event { } }
但是在书中只给出了如下的一部分而已
public ThisEscape(EventSource source) { source.registerListener(new EventListener() { public void onEvent(Event e) { doSomething(e); } }); }
顺便把开篇里面的那个讨论中的一个回答贴一下
讨论中还有剩余的两个回答,可以去看看,加深理解
相关文章
- Java高并发核心编程(卷1):NIO、Netty、Redis、ZooKeeper
- 《Java并发编程实战》第五章 同步容器类 读书笔记
- Java Date Time 教程-java.util.Date
- 《Java并发编程的艺术》第一章
- Java: mysql-connector-java
- 【java】高并发之限流 RateLimiter使用
- 并发编程--Java的线程通信方式概念及使用示例
- CSDN日报191016:Java纯干货分享:史上最全的JAVA工程师面试题汇总
- JAVA多线程和并发基础面试问答(转载)
- 【Java】java基本知识
- Java并发编程 - 基本概念
- Java并发编程 LockSupport源码分析
- Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- java Map Set遍历
- Java并发编程:并发容器之ConcurrentHashMap(转载)
- 浅析Java的fail-fast(快速失败)机制、COW优化策略、CopyOnWrite并发容器-读写分离思想
- Java并发编程(十三)线程间协作的两种方式:wait、notify、notifyAll和Condition
- Java并发编程(五)Lock
- Eclipse迅速执行:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- 【JAVA并发编程专题】同步屏障CyclicBarrier的理解和使用
- <<java 并发编程>>第七章:取消和关闭
- Java内存模型JMM--高并发编程
- 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....
- 【Java 并发编程】Java 线程的生命周期