同步集合包装器工厂方法如何“拥有”传递给它的对象?

2024-02-29

Brian Goetz 在《Java Concurrency in Practice》一书中说,传递给类的构造函数和方法的对象是不拥有由类本身。是因为他们是从外面来的,班级无法控制他们吗?

他接着说,如果方法被明确设计为转移传入对象的所有权(例如同步集合包装器工厂方法),则有一个例外。有人可以举一个相同的例子并向我解释如何将其视为例外吗?


一个例外是

List<String> syncList = Collections.synchronizedList(new ArrayList<>());

您可以看到,synchronizedList 的设计方式只要包装器对象持有对底层数组列表的唯一可访问引用,它就承担线程安全责任的所有权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同步集合包装器工厂方法如何“拥有”传递给它的对象? 的相关文章

随机推荐

  • 使用 django 通道将 webRTC 视频流发送到服务器

    我正在尝试创建一个用 django 编写的人脸检测 Web 应用程序 该应用程序是这样工作的 用户导航到该 url 相机在客户端计算机上启动 然后将每一帧发送到服务器进行人脸检测 然后将处理后的帧显示在网页上 我知道我无法使用 opencv
  • 使用弱链接框架的外部常量崩溃

    我尝试在插件 NSBundle 中使用 Cocoa 框架作为弱链接框架 以便我可以在多个插件中使用它 我有该框架的源代码 并且已在另一个插件中成功使用该框架 尽管不是作为弱链接框架 在这种情况下 效果很好 它有效 但是当我在代码中配置框架的
  • 数据加载后如何刷新面板?

    我在 div 内呈现了一个 extjs 面板 如下所示 panel new Ext Panel layout fit renderTo my div monitorResize true relay on browser resize he
  • 具有特定 id 的 magento 产品集合

    我选择的产品有 products Mage getModel catalog product gt getCollection gt addAttributeToFilter entity id array in gt productIds
  • ObjC 类标识符和编译器魔法?

    考虑 interface Foo NSObject void dump end implementation Foo Class classOf1 return self Class classOf2 return Foo class Cl
  • Xcode 4.2 中 ARC 中的 __weak 和自动释放池

    我的项目使用ARC 我用下面的代码进行了测试 NSString weak string autoreleasepool string NSString stringWithString AAA NSLog string string 我认为
  • 如何从 Swift 中的整数获取特定位?

    尝试将我的应用程序从 C 转换为 Swift C static QWORD load64 const OCTET x char i QWORD u 0 for i 7 i gt 0 i u lt lt 8 u x i return u Sw
  • 如何获取选定联系人的电话号码?

    public void onActivityResult int reqCode int resultCode Intent data super onActivityResult reqCode resultCode data switc
  • 将 UI 图像放入网格布局组 Unity C#

    我在将 UI 图像放入 Unity 的网格布局组中时遇到问题 这会发生什么 检查下面的链接 IMG http i65 tinypic com fp2dly jpg http i65 tinypic com fp2dly jpg IMG IM
  • Docile.jl 在 Julia 0.3 中的使用示例

    我是朱莉娅的新手 我有兴趣使用温顺 jl https michaelhatherly github io Docile jl index html向现有 Julia 项目添加文档 根据这个帖子 https stackoverflow com
  • PHP:字符串到正则表达式

    我尝试使用字符串作为正则表达式模式 但出现以下错误 PHP Warning preg match Unknown modifier gt in Applications MAMP htdocs cruncher Plugins wordpr
  • 如何使 PHPUnit 在有风险的测试中失败

    我想要 PHPUnitfail如果一项或多项测试被认为有风险 实际上 PHPUnit 5 3 4 by Sebastian Bergmann and contributors RRR 7 7 100 Time 2 83 seconds Me
  • 在哪里可以找到新的 azure devops 扩展的所有可用贡献目标?

    新的azure扩展开发文档 https developer microsoft com en us azure devops develop extensions指向一个示例项目github https github com Microso
  • LLVM 和编译器术语

    我正在研究 LLVM 系统并且我已经阅读了入门文档 http llvm org docs GettingStarted html 然而 一些术语 以及 clang 示例中的措辞 仍然有点令人困惑 以下术语和命令都是编译过程的一部分 我想知道
  • 如何对嵌入 JSON 的 JSON 进行编码

    我有一个 JSON 字符串 其中一个字段是文本字段 此文本字段可以包含用户在 UI 中输入的文本 如果他们输入的文本是 JSON 文本 也许为了说明一些编码 我需要对其文本进行编码 以便它不会在发送的实际 JSON 结构中被解释为 JSON
  • 创建具有多个子文件夹链接的 Ajax 网站失败

    我正在尝试创建一个site那是loading全部都是通过 Ajax 的内容 假设该网站是www abc net I have abc net index html并且无论输入什么 URL 文件夹 文件 该文件都将始终被调用 abc net
  • RGDAL 无法安装

    我无法在 R 中安装 RGDAL 我使用的是 Ubuntu 12 04 configure error gdal config not found or not executable ERROR configuration failed f
  • 关于 REST 响应和 XMLElement

    我有下面一个需要在代码中创建的 REST 响应
  • Page_Load 未在 UserControl 中触发

    我在类库中用 C 创建了一个类 并将此控件添加到了 default aspx 但我的代码没有触发 page load 事件 这是代码 我究竟做错了什么 页面已加载 但页面上未显示标签 我已将控件正确添加到页面 没有任何错误 我已经在其中添加
  • 同步集合包装器工厂方法如何“拥有”传递给它的对象?

    Brian Goetz 在 Java Concurrency in Practice 一书中说 传递给类的构造函数和方法的对象是不拥有由类本身 是因为他们是从外面来的 班级无法控制他们吗 他接着说 如果方法被明确设计为转移传入对象的所有权