如何立即释放在BlockingQueue上等待的线程

2024-01-09

考虑一个BlockingQueue和一些等待的线程poll(long, TimeUnit)(也可能在take()).

现在队列是空的,需要通知等待线程它们可以停止等待。预期的行为是null退回或申报的InterruptedException thrown.

Object.notify()不会为LinkedBlockingQueue因为线程正在等待内部锁。

有什么直接的方法吗?


BlockingQueue 的 Javadoc 提出了一个好方法:

BlockingQueue 本质上并不 支持任何类型的“关闭”或 “关机”操作表明 将不会添加更多项目。需求 这些功能的使用往往是 取决于实施。例如, 生产者的一个常见策略是 插入特殊的流尾或毒药 被解释的对象 消费者采取相应措施时。

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

如何立即释放在BlockingQueue上等待的线程 的相关文章

  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • 正则表达式拆分数字和字母组,不带空格

    如果我有一个像 11E12C108N 这样的字符串 它是字母组和数字组的串联 如何在中间没有分隔符空格字符的情况下分割它们 例如 我希望分割结果为 tokens 0 11 tokens 1 E tokens 2 12 tokens 3 C
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • java中如何连接字符串

    这是我的字符串连接代码 StringSecret java public class StringSecret public static void main String args String s new String abc s co
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 将 Azure AD 高级自定义角色与 Spring Security 结合使用以进行基于角色的访问

    我创建了一个演示 Spring Boot 应用程序 我想在其中使用 AD 身份验证和授权 并使用 AD 和 Spring Security 查看 Azure 文档 我执行了以下操作 package com myapp contactdb c
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的

随机推荐

  • 如何使用OpenGL和QT?

    我正在开发一个小项目 我需要使用 OpenGL QT 我在这两个方面都是新手 所以我需要一个很好的教程来说明如何彼此合作而不是单独合作 在 QT Creator 上运行 OpenGL 还是使用 QT Visual Studio Plug i
  • ScrollView 重叠工具栏

    我尝试使用 ScrollView 和 Toolbar 作为 LinearLayout 的唯一子级 但它们彼此重叠 搜索了一下 但没有找到任何有用的东西 知道如 何解决这个问题而不是给 ScrollView 提供填充 边距吗
  • 如何阻止读取 C++ stringstream 以等待数据

    因此 我一直试图弄清楚如何等待来自 C stringstream 的数据 例如 而不需要不断检查数据是否存在 这非常消耗 CPU 例如 我完全能够从串行设备读取数据 并在没有数据到达时锁定进程 但不幸的是我无法弄清楚如何使用 C 流来做到这
  • 两个数组到哈希组合中奇怪的乘法运算符行为

    我正在寻找一种将两个数组转换为单个散列的方法 我发现了这样的东西 a1 1 2 3 a2 A B C Hash a1 zip a2 flatten 我觉得这个语法有点奇怪 因为Hash a1 zip a2 会做完全相同的事情 但更重要的是
  • Nodejs PM2集群模式实现负载均衡

    使用 pm2 集群时 会出现一个非常严重的警告 提示您不应在生产中使用它 也不应用于负载平衡 请改用 nginx 不幸的是 这正是我计划使用 PM2 的方式 它真的不打算用于此目的还是只是还没有完全准备好 Nodejs集群 0 10 有很多
  • Emacs shell 模式 SSH 会话中的 Tab 补全

    我当前的 emacs 使用模式导致我打开了多个 shell 模式缓冲区 每个缓冲区都运行一个 ssh 会话 不过 我遇到了一个问题 当我尝试在远程会话中使用制表符补全文件名和其他内容时 shell 尝试使用本地计算机上可用的补全 而不是远程
  • R:将日期从字符转换为日期时间[重复]

    这个问题在这里已经有答案了 I have df date作为下面的字符类型 date 1 2016 04 10T12 21 25 4278624 2 2016 04 12T10 01 42 9573987 3 2016 04 12T10 0
  • 有没有办法在运行时停止/重新启动 ejb 3.1 自动计时器?

    我正在尝试使用一个简单的自动 EJB 计划 计时器 我的代码是这样的 Singleton Lock LockType READ public class Scheduler Schedule second 0 minute 20 hour
  • 如何使用javascript更改标签的值?

    这是我的html代码 a href myfile html Old File gt 我想更改名称为 新文件 的标签的值 所以我写了像 document getElementById tagId value New File 这样的javas
  • wav <> mp3 for flash(as3)

    我想知道 MP3 解码 编码 我希望使用 AS3 在 Flash 中实现这一点 我确信这将是一个正确的痛苦 我不知道从哪里开始 有人可以提供任何指示吗 参考资料 很久以后 非常感谢大家的意见 看来我还有很长的路要走 理论上 您也可以将其作为
  • 使用 OpenGL 和 QT 进行纹理映射 - C++

    我在使用 OpenGL 和 Qt 将纹理映射到四边形时遇到问题 我查看了其他几个 SO 线程 但是许多函数调用的使用方式必须略有不同才能进行编译 Qt Verison 4 8 6 这是我的相关代码 现在所发生的只是一个窗口显示为黑色背景 但
  • 如何保存openFileDialog中的最后一个文件夹?

    如何使我的应用程序存储最后打开的路径openFileDialog新开后恢复吗 OpenFileDialog openFileDialog1 new OpenFileDialog openFileDialog1 Filter txt file
  • 如何在 Ubuntu Desktop 12.04 上设置 ANT_HOME?

    看起来Ubuntu使用的是 bashrc bash profile pam profile etc environment and etc profile以非常相似的方式 我希望能够向其中之一添加配置 无论哪一个是合适的 来设置ANT HO
  • 如何从内容页访问 TextArea 值

    我的内容页面中有一个 TextArea 控件 位于 UpdatePanel 内
  • 如何让 Xcode 将自定义文件扩展名识别为 Objective-C 以进行语法突出显示?

    我想让 Xcode 4 将自定义文件扩展名 例如 lx 识别为 Objective C 以实现语法突出显示和缩进目的 如何让工具自动执行此操作 Xcode 根据文件的属性确定如何在其用户界面中表示文件统一类型标识符 https develo
  • Angular Material 日期选择器 |延迟加载 + CustomDateAdapter + 国际化 - RangeError:超出最大调用堆栈大小

    结构问题 我不太确定是否找到了这两行代码的正确位置 providers provide MAT DATE LOCALE useValue de DE provide DateAdapter useClass CustomDateAdapte
  • 使用 blazor 加载外部 .NET Standard 2.0 程序集

    在 Blazor 应用程序中 我想加载外部程序集并执行方法 为此 我使用 Blazor 模板创建了一个新的 ASP Net Core Web 应用程序 然后 在 Razor 页面 将由浏览器 wasm 编译和执行 中 我使用反射来加载程序集
  • Chrome 扩展:等待元素加载(异步 js)

    我有一个 Chrome 扩展程序 我想等到元素加载后再将内容注入页面 我正在尝试注入一个按钮 myButton document createElement button myButton class mybutton document q
  • 复杂的声明

    如何解释复杂的声明 例如 int fp1 int 10 gt declaration 1 int 5 gt declaration 2 理解上述声明有什么规则需要遵循吗 这是一篇关于如何阅读 C 中的复杂声明的精彩文章 http www c
  • 如何立即释放在BlockingQueue上等待的线程

    考虑一个BlockingQueue和一些等待的线程poll long TimeUnit 也可能在take 现在队列是空的 需要通知等待线程它们可以停止等待 预期的行为是null退回或申报的InterruptedException throw