java.util.concurrent.LinkedBlockingQueue 中的奇怪代码

2023-11-25

All!

我在LinkedBlockingQueue中发现了奇怪的代码:

private E dequeue() {
        // assert takeLock.isHeldByCurrentThread();
        Node<E> h = head;
        Node<E> first = h.next;
        h.next = h; // help GC
        head = first;
        E x = first.item;
        first.item = null;
        return x;
}

谁能解释一下为什么我们需要局部变量 h ?它对 GC 有什么帮助?


如果你看一下jsr166 源代码然后你会找到有问题的提交,向下滚动到 v1.51

这表明答案就在这错误报告

完整的讨论可以在jsr.166 邮件列表线程

“帮助 GC”是为了避免事情渗透到终身职位中。

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

java.util.concurrent.LinkedBlockingQueue 中的奇怪代码 的相关文章

  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 如何在 C# 中创建包含多种尺寸/图像的图标文件

    如何创建包含多种尺寸的图标文件 我知道我使用位图创建了一个图标Icon FromHandle 但如何向该图标添加另一个图像 尺寸 Edit 我需要在我的应用程序中执行此操作 因此我无法执行外部应用程序来进行组合 我正在寻找一种将 png 文
  • CSS中按属性选择元素

    是否可以通过 HTML5 数据属性来选择 CSS 中的元素 例如 data role 如果你的意思是使用属性选择器 当然 为什么不呢 data role page Styles 有多种属性选择器可用于各种场景 我链接到的文档中均涵盖了这些选
  • 插入约 5000 行时,核心数据 sqlite-wal 文件变得巨大(>7GB)

    我正在将数据导入 Core Data 并发现保存操作很慢 使用 iOS 模拟器 我观察 sqlite wal 文件不断增长 直到其大小超过 7GB 我正在导入大约 5000 条记录 其中包含大约 10 个字段 这并不是很多数据 我插入的每个
  • 合并不重叠的数组块

    我使用此函数将 512x512 二维数组划分为 2x2 块 skimage util view as blocks arr in block shape array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • BOOST_CHECK 无法编译自定义类型的运算符 <<

    我写了这个非常简单的类 以便清楚我的问题是什么 class A public int x A int y x y bool operator const A other const return x other x 现在 如果我定义 A f
  • 格式正确的乘法口诀表

    我如何制作一个组织成整齐表格的乘法表 我当前的代码是 n int input Please enter a positive integer between 1 and 15 for row in range 1 n 1 for col i
  • C++ 中的结构体可以有构造函数吗?

    Can a structC 中有构造函数吗 我一直在尝试解决这个问题 但我没有得到语法 在 C 中 a 之间的唯一区别class and a struct问题在于 成员和基类在类中默认是私有的 而在结构中默认是公共的 因此结构可以有构造函数
  • Maven cobertura 插件 - 多模块项目的一份报告

    我正在使用 Maven cobertura 插件来报告我的多模块项目中的代码覆盖率 问题是我不知道如何为项目中的所有模块生成一份报告 到目前为止 我已经为每个模块生成了单独的报告 但如果能为整个项目提供一份报告那就太好了 我的父pom配置
  • 将 Coldfusion 加密代码转换为 C#

    我有一个 Coldfusion 页面 其中包含一段加密变量的代码 如下所示
  • 如何在不按键的情况下更改大写锁定状态

    我正在使用一个Python程序 按下大写锁定键时会激活 我希望能够在程序处于活动状态时打开 关闭大写锁定状态 我尝试使用 virtkey 发送密钥 但它显然不起作用 因为密钥只是激活应用程序并且不会更改大写锁定状态 那么使用 python
  • Fluent nHibernate 启动时间慢

    我正在使用 Fluent NHibernate 我喜欢它 我遇到一个小问题 启动时间约为 10 秒 我不知道如何优化 Fluent nHibernate 为了减少启动时间的问题 我将其放在一个线程上 有人可以告诉这个问题的解决方案吗 并回复
  • 定义跨平台的money_format函数(Linux和Windows)

    我读到 money format 在 Windows 和某些 Linux 发行版 即 BSD 4 11 变体 上不可用 但我想使用普通函数 当可用时 编写跨平台库并使用它解决方法如果没有 那么我的库将能够在每个基于 PHP 的 Web 服务
  • YAML - 类型错误:无法转储匿名模块

    在 application controller 的操作中 如果我们尝试 p request env to yaml 我会得到这个错误 TypeError can t dump anonymous module
  • com.sun.faces.renderkit.html_basic.MenuRenderer createCollection:无法为 java.util.Arrays$ArrayList 类型创建新的 Collection 实例

    我正在尝试将 JSF SelectManyCheckBox 标记与枚举一起使用 这是我的 xhtml 代码
  • 检查 Visual Basic 文本框中输入的数值

    我正在为我的 Visual Basic 课程编写一个程序 并且有一个简单的问题 我们被鼓励做的一件事是检查以确保文本框中输入的数量实际上是数字 我们的教授建议使用 IsNumeric 来执行此检查 但我遇到了一些麻烦 在他将其添加到说明中之
  • wicked_pdf:页脚高度/样式

    我正在使用很棒的wicked pdf 宝石生成 PDF 但我不知道如何更改页脚中的某些样式 我的页脚有一个 HAML 模板 大致如下所示 html head meta charset gt utf 8 wicked pdf styleshe
  • Jackson 使用匿名类进行反序列化

    我一整天都在寻找可以回答这个问题的东西 但到目前为止我还没有太多运气 我的问题很简单 如何使用 Jackson 正确反序列化匿名对象 private interface Interface1 int getValue public stat
  • 如何传递包含引号/空格的脚本参数?

    我正在尝试写一个脚本notify finish可以添加到任何命令的前面 完成后 它将运行以下参数给出的命令 然后在命令完成后向用户发送电子邮件 这是我所拥有的 PROG 1 Run command given by arguments EC
  • 从邮箱字符串获取电子邮件地址

    我需要从该邮箱字符串中提取电子邮件地址 我想到了str replace但显示名称和电子邮件地址不是静态的 所以我不知道如何使用正则表达式来做到这一点 例子 My name lt email protected gt 应该导致 email p
  • java.util.concurrent.LinkedBlockingQueue 中的奇怪代码

    All 我在LinkedBlockingQueue中发现了奇怪的代码 private E dequeue assert takeLock isHeldByCurrentThread Node