同步块是否会阻止其他线程向同步列表中插入数据?

2023-12-05

所以我正在开发一个多线程java应用程序,我有这个问题:

List<Integer> mlist = Collections.synchronizedList(new ArrayList<Integer>());
public void addStuff(int a){
   mlist.add(a) // mlist is a synchronized list
}

public void traverseArray(){
   synchronized(mlist){
    // traversing mlist using normal for loop
   }

}

在上面的代码中,如果一个线程尝试使用以下命令将元素添加到列表中addStuff()是否允许另一个线程进入同步块TraverseArray()方法? 或相反亦然 如果线程正在使用同步块遍历列表TraverseArray()方法,是否允许另一个线程使用以下方法将元素添加到列表中addStuff() method?


列表上同步的是required by the 文档.

用户必须手动同步返回的 迭代时列出:

  List list = Collections.synchronizedList(new ArrayList());
      ...
  synchronized (list) {
      Iterator i = list.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }

因此,您可以推断,只要上述代码位于同步块中,其他线程的修改就会被阻止。

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

同步块是否会阻止其他线程向同步列表中插入数据? 的相关文章

  • 光学标记阅读器的开源库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个用于光学标记读取 OMR 的开源库 有这样的库吗 我想在我的 java 应用程序中使用这个库 zxing 可能对你有用 http
  • 如何可靠地判断 boost 线程是否已退出其 run 方法?

    我以为 joinable 会表明这一点 但事实似乎并非如此 在工人阶级中 我试图表明它仍在通过谓词进行处理 bool isRunning return thread gt joinable 已经退出的线程不是不能加入吗 我错过了什么 boo
  • 在 Java 中跨平台地播种随机生成器,无需时间

    我几乎同时在两个线程上初始化两个随机数生成器 并且我希望这两个生成器的行为完全不同 我会打电话Random nextInt 7 经常一个接一个地在两台发电机上运行 使用System currentTimeMillis 这不是一个好主意 因为
  • 使用 Java 检索 Window 进程的 CPU 使用率

    我正在寻找一个 Java 解决方案来查找 Windows 中正在运行的进程的 CPU 使用情况 查了一下网上 关于Java解决方案的信息似乎很少 请记住 我并不是要查找 JVM 的 CPU 使用情况 而是要查找当时在 Windows 中运行
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 将位于 jar 中的文件读取为 java.io.File 对象

    与此类似的问题已发布 但似乎没有一个答案对我的情况有帮助 我正在编写一个程序包 它使用 Google 的凭据来获取 Google Apps 用户 为此 我使用服务帐户 因此为了检索凭据 我需要提供 除其他外 一个 p12 签名文件 Cred
  • Stream#limit 返回的元素是否可以少于预期?

    如果流s下面至少有n元素 流在什么情况下sLimit可能少于n元素 如果有的话 Stream sLimit s limit n 提问原因 在这个答案 https stackoverflow com a 28082107 829571 我读到
  • 如何使用 JAVA 和 ADB 命令检查 Appium 中键盘是否打开

    我正在尝试检查 Android 默认键盘是否打开 我没有找到任何可以在 Appium 中使用 JAVA 和 ADB 命令检查键盘的内容 我发现这个 ADB 命令可以检查键盘是否打开 adb shell dumpsys input metho
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 当另一个线程发生事情时从主线程获取数据?

    目前我有一个线程正在运行一个侦听连接的套接字 当它收到连接时 它需要上传在主线程中收集的数据 即从主线程获取数据 但是 我传递了对象的实例 但它从未使用等待连接时收集的数据进行更新 有没有正确的方法来做到这一点 我用谷歌搜索了一下 似乎找不
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 在Java程序中计算zip文件的md5哈希值

    我有一个 zip 文件 在我的 Java 代码中我想计算 zip 文件的 md5 哈希值 有没有我可以用于此目的的 java 库 一些例子将非常感激 谢谢 几周前我通过这篇文章做到了这一点 http www javalobby org ja
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • spring-boot-starter-web 2.4.4 导入 spring-web 和 spring-webmvc 版本 4.3.12 在 pom 中列为 5.3.5

    我正在使用spring boot starter web我的项目中的版本2 4 4 当我查看其内容时 它清楚地列出了 spring web 和 spring webmvc 5 3 5 版本 但是 由于某种原因 我可以看到这个 spring
  • Java 中的可迭代求和?

    有没有一个库可以做到这一点 public class Iterables private Iterables public static
  • Java Calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY),它会向后滚动、向前滚动还是未知?

    假设以下代码在 2009 年 8 月 22 日 星期六 执行 Calendar c Calendar getInstance c set Calendar DAY OF WEEK Calendar SUNDAY c get Calendar
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下

随机推荐

  • 用户设置 - 安卓

    如何使应用程序中的更改持续存在 以便当应用程序重新启动时所有设置保持不变 例如 如果从应用程序中我选择了振动 那么当应用程序未运行时 如果我的手机处于铃声模式 当应用程序重新启动时 它将自身设置为振动 实际上有多种方法可以持久保存更改 这安
  • 使用 jquery 可拖动和可点击的输入元素

    我在可拖动的 div 中有一个输入元素 我的代码应该做以下事情 当我拖动输入元素时 应该拖动整个可拖动 div 已完成 当我单击输入元素时 我应该能够编辑文本 无法完成 那么 有人可以告诉我如何单击和编辑可拖动的输入元素的文本吗 这是我的完
  • WCF 传输安全弱点

    Lowy 撰写的 Programming WCF Services 第二版 第 10 章 第 512 页 Lowy谈到传输安全时说 它的主要缺点是它只能保证点对点的传输安全 这意味着当客户端直接连接到服务时 客户端和服务之间存在多个中介会使
  • Sikulix/Jython UAC 自动化

    我想知道是否有人有幸在安装程序自动化期间通过 UAC 弹出窗口实现自动化 我有一个现有的自动安装程序代码 但由于 Sikuli 在此步骤中未使用键盘 鼠标 它在 UAC 区域失败 有人在这里有运气吗 或者在 Jython 中没有办法做到这一
  • WPF DataGrid HeaderTemplate 神秘填充

    我将一个带有图像的按钮放置在 DataGrid 列的标题中 单元格模板也只是一个带有图像的简单按钮
  • 如何解决“无法实例化 WebApplicationInitializer 类”

    我有一个 CRUD spring 应用程序 由于依赖关系而无法运行 我需要包装上带有 战争 的部分 但无法到达 我的 pom xml 是
  • 如何使用 xmlstarlet 选择和编辑 xml 节点?

    这里我选择节点 xmlstarlet sel t c configuration property name http agent name value conf nutch default xml
  • 是否有用于 ID3 元数据的 Perl 或 Python 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 基本上 我有一堆从我兄弟的 iPod 上下载的音乐文件 它们保留了元数据 但 iPod 似乎喜欢将它们存储在那些绝对可怕的四个字符名称下 我想我应该编写一个漂亮 快速的脚本来按照我的
  • 如何通过 XAML 中的样式重用项目子项?

    我有一个 WPF 子菜单 我想在 XAML 中的几个地方重用它 这是八张合集
  • 检测点是在 raphael.js 形状的内部还是外部

    我有一个 raphael js 形状 我正在其上绘制圆圈 我只希望当圆没有超出其所绘制的形状的边界时出现一个圆 为了更清楚地说明这一点 以下是我不希望发生的情况的示例 示例http img682 imageshack us img682 4
  • 谷歌折线图:线向下时改变颜色

    https developers google com chart interactive docs gallery linechart 大家好 我想知道有没有办法改变线条向下移动时的颜色 我用谷歌搜索但找不到任何东西 例如 折线图向上移动
  • 在Python中向小数点后的浮点数添加零

    我正在从一个文件中读取数据 修改它并将其写入另一个文件 新文件将由另一个程序读取 因此保留精确的格式至关重要 例如 我的输入文件中的数字之一是 1 000000 我的脚本对列应用了一些数学并且应该返回 2 000000 但目前返回的是 2
  • Typescript 有联合,那么枚举是多余的吗?

    自从 TypeScript 引入联合类型以来 我想知道是否有任何理由声明枚举类型 考虑以下枚举类型声明 enum X A B C var x X X A 和类似的联合类型声明 type X A B C var x X A 如果它们基本上服务
  • 平滑鼠标移动

    我正在开发一个软件 根据我从 kinect 的深度图像获得的某些坐标来移动鼠标 但我有 30 帧 秒 图像 秒 并且这些坐标随着每一帧而变化 因此鼠标不断移动 我的问题是 有没有办法让鼠标的移动平滑 是的 您可以使用一些参数开始跟踪 以使移
  • 将 Gradle 支持添加到 IntelliJ 项目的最佳方法

    我环顾四周 没有找到将现有 IntelliJ 项目转换为 Gradle 的最佳解决方案 我在团队环境中工作 我们目前共享 ipr 文件 因为我们有一些跟踪的构建配置 我们最终将摆脱那些支持 Gradle 的人 但在 Gradle 转换完成之
  • 更新可变 HashMap 值,这是一个可变集合

    我有一张如下所示的地图 Map A gt Collection B 该映射会循环更新 然而 特殊之处在于 更新主要意味着将元素 B 添加到 Collection B 对于某些键 A 我试图找出是否可以通过将 Collection 的类型从
  • 需要在solaris命令中重新排列和求和列

    我有以下名为 atp csv 文件的数据 Date Time M ID N ID Status Desc AMount Type 2015 01 05 00 00 00 076 1941321748 BD9010423590206 200
  • 如何在 MatLab 中设计 SOAP 调用

    我根本不清楚如何从 MatLab 调用网络服务 我正在尝试申请本指南但我不明白几个部分 比如这个 哪里指定是GET还是POST What is 名称空间 我应该如何提供我拥有的 WSDL 文件 我很迷失所以任何提示将不胜感激 如果您有权访问
  • EF Code First Mysql 到 SQL Server

    我有一个 MVC 5 应用程序 我首先将其配置为使用 Mysql 但现在希望它使用 SQL Server 我的应用程序首先使用代码和迁移来生成数据库 更改所有必需的配置后 我尝试从包管理控制台运行更新数据库 但我不断收到此错误 System
  • 同步块是否会阻止其他线程向同步列表中插入数据?

    所以我正在开发一个多线程java应用程序 我有这个问题 List