读书人

Java Concurrency in practice 札记

发布时间: 2012-10-09 10:21:45 作者: rapoo

Java Concurrency in practice 笔记

何为Escape, 类的成员变量理应不暴露给其他对象,但是却因为某些公有函数暴露出去了,这样就叫做Escape。

接下来列举一些例子:

1.

2.?把内部类EventListener通过方法registerListener传给了source对象。source可能会在registerListener方法中通过内部类EventListener拿到ThisEscape的地址,并进行操作,这个时候就可能会有错误,因为这个时候ThisEscape还没有完全实例化。

public class SafeListener {    private final EventListener listener;    private SafeListener() {        listener = new EventListener() {            public void onEvent(Event e) {                doSomething(e);            }        };    }    public static SafeListener newInstance(EventSource source) {        SafeListener safe = new SafeListener();        source.registerListener(safe.listener);        return safe;    }}?

?

读书人网 >编程

热点推荐