Java ArrayList.add() 方法对于纯并行添加线程安全吗? [复制]

2023-11-30

考虑一个函数的 for 循环,该函数接受 ArrayList 引用并向该 ArrayList 添加一个对象。我现在想并行执行每个函数调用。

如果我不关心对象添加的顺序并且没有函数读取或操作任何 ArrayList 元素,那么 ArrayList.add() 方法线程安全吗? 所以我只想确保在并行调用结束时所有对象都添加到列表中。


不,它不是线程安全的。使用以下内容包装您的列表Collections.synchronizedList(),或者在访问列表时使用显式同步。

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

Java ArrayList.add() 方法对于纯并行添加线程安全吗? [复制] 的相关文章

  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • 当路径的点超出视野时,Android Canvas 不会绘制路径

    我在绘制路径时遇到了 Android Canvas 的一些问题 我的情况是 我有一个相对布局工作 如地图视图 不使用 google api 或类似的东西 我必须在该视图上绘制一条路径 canvas drawPath polyPath bor
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • 将SQL数据引入jquery availabletag

    我正在尝试制作自动完成文本框 但如何将 SQL 数据包含到 jquery 可用标记并循环它 我无法根据以下代码执行该功能 任何帮助 将不胜感激 谢谢 这是我的预期输出 预期结果演示 http jsfiddle net VvETA 71 jq
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 每个客户端一个线程与线程服务器的排队线程模型之间的相对优点?

    假设我们正在构建一个线程服务器 旨在在具有四个核心的系统上运行 我能想到的两种线程管理方案是每个客户端连接一个线程和一个排队系统 正如第一个系统的名称所暗示的那样 我们将为每个连接到服务器的客户端生成一个线程 假设一个线程始终专用于程序的主
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从

随机推荐

  • 对齐多个 XYChart 的 X 轴

    我有两个XYChart我想垂直对齐显示 这两个图共享相同的 x 轴 但它们使用不同的数据集 这些值不在同一数量级 这使得 y 轴标签的大小差异很大 最终 两个x轴不再对齐 我的目标是对齐这些 x 轴 一种建议的解决方案提供了一种解决方法 即
  • 组合框所选项目 WPF c#

    我想在组合框 wpf 中获取所选项目 但它返回System Data DataRowView 我的 xaml 代码
  • 将 Obserable 集合绑定到 UWP 中的 MenuFlyoutSubItem

    目前我得到 属性 Items 没有可访问的设置器 我如何修改此控件以允许我将集合绑定到它 并且可能只是将集合中对象的属性设置为项目的文本属性
  • 使用比较器比较不同的对象类型

    我需要编写一个比较器 它接受类型 A 的对象 A 和类型 B 的对象 B 这两个对象不是公共对象的扩展 它们确实不同 但我需要通过其中的共同字段来比较这两个对象 我必须使用比较器接口 因为对象存储在 Set 中 并且之后我必须使用 Coll
  • 如何在 gmock Expect_call 中对结构参数进行部分匹配

    struct obj int a string str string str2 bool operator const obj o const if a o a str o str str2 o str2 return true retur
  • 在java中将层次列表转换为平面列表

    我有一个层次结构list如下所示 我想将其转换为公寓list 我写了一个方法叫convertToFlatList并已经使用过它 但最终结果中缺少一些元素 我做错了什么 还有比我用来将列表转换为平面列表更好的方法吗 我添加了示例代码和类似于我
  • 带有 OpenJDK 11 且没有 Spring Context 的 AspectJ 1.9.4 无法作为依赖模块工作

    我正在尝试使用 AspectJ 创建自定义加载时注释 在没有 Spring Context 的情况下打开 JDK11 它在模块内运行良好 注释在类加载时编织 方面在运行时执行 没问题 但是当aspectJ实现模块添加为对另一个模块的依赖时
  • build.gradle 依赖项自动更新

    compile com google android gms play services 8 3 0 compile com android support support v4 22 2 1 compile com android sup
  • 将 BitmapImage 加载到 WriteableBitmap 但不存在方法

    的构造函数WriteableBitmapWindows 8 的类仅接受两个参数 该对象的高度和宽度 同时 Silverlight 接受BitmapImage对象作为参数 在 MSDN 上验证 WriteableBitmap Writeabl
  • Firebase 查询从两个节点一起获取数据

    我在 Firebase 实时数据库中有一个名为 Posts 的根节点 在其中 我有两个名为 ImagePosts 和 TextPosts 的节点 在 ImagePosts 和 TextPosts 内 我有各种帖子的 postId 在 pos
  • 非法指令:运行任何 Tensorflow 程序时出现 4 错误

    我正在尝试训练 Tensorflow 卷积神经网络 无论我运行程序的环境如何 我总是会收到一个神秘的错误 在 Jupyter Notebook 中 内核会直接死掉 在终端中 我得到 非法指令 4 没有回溯 在 Pycharm 中 我得到 进
  • 如何显示和隐藏 UISearchDisplayController 的 UISearchBar

    我有一个位于导航右侧的按钮搜索 这是我的代码 UIButton btnSearch UIButton buttonWithType UIButtonTypeCustom btnSearch frame CGRectMake 0 0 22 2
  • Fabric.io 中的 API 密钥和 Build Secret 有什么区别?

    我在 Android 应用程序中使用 Fabric io 的 Crashlytics 工具 我已将 API 密钥放入清单文件中 Fabric 还提供了构建秘密字符串 但没有使用说明 Fabric 可能假设用户事先了解如何使用 BUILD S
  • 映射 servlet 来满足我的请求

    我想映射一个 servlet 来服务包含 app 并以 html 结尾的请求 如下所示
  • 使用 GSON 加载非常重的流

    我正在尝试读取非常重的 JSON 超过 6000 个对象 并将它们存储在哈希映射上 以便稍后将其插入到我的数据库中 但问题是我面临 OOM 这是我沉重的 JSON 造成的 但是 GSON 库应该让我摆脱这种情况 但事实并非如此 有任何想法吗
  • 获取默认选择颜色?

    I can change theCSS选择颜色 但我怎样才能get浏览器 操作系统默认选择以便我可以在其他地方使用它 例如在 Ubuntu Chrome 上 文本以橙色突出显示 我想将同样的风格应用到 li 当我用鼠标悬停在它上面时 CSS
  • 全局检测触摸

    我试图弄清楚如何解决这个 相当 简单的问题 但我失败得很惨 所以我真的需要你的建议 我的应用程序由一个带有多个选项卡的 uitabbar 组成 在其中一个中 我有一堆 UIImageView 每个视图代表图片的缩略图 类似地 当您通过按住应
  • 在C++中,为什么指针转换时地址会改变?

    以下是代码 include
  • 使用现有基类对象创建派生类对象?

    是否有可能 或快速解决方法 创建定义为派生类的对象 而无需在内存中创建基类对象 相反 派生对象应该引用基类实际存在的对象 接管 其内存驻留 出于速度原因 这是需要的 创建新的派生对象 将数据从基类对象复制到它 然后销毁基对象需要太多时间 在
  • Java ArrayList.add() 方法对于纯并行添加线程安全吗? [复制]

    这个问题在这里已经有答案了 考虑一个函数的 for 循环 该函数接受 ArrayList 引用并向该 ArrayList 添加一个对象 我现在想并行执行每个函数调用 如果我不关心对象添加的顺序并且没有函数读取或操作任何 ArrayList