Brian Goetz 在《Java Concurrency in Practice》一书中说,传递给类的构造函数和方法的对象是不拥有由类本身。是因为他们是从外面来的,班级无法控制他们吗?
他接着说,如果方法被明确设计为转移传入对象的所有权(例如同步集合包装器工厂方法),则有一个例外。有人可以举一个相同的例子并向我解释如何将其视为例外吗?
一个例外是
List<String> syncList = Collections.synchronizedList(new ArrayList<>());
您可以看到,synchronizedList 的设计方式只要包装器对象持有对底层数组列表的唯一可访问引用,它就承担线程安全责任的所有权。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)