在Java中实现阻塞函数调用

2023-11-22

在 Java 中实现阻塞函数调用的推荐/最佳方法是什么,稍后可以通过另一个线程的调用来解除阻塞?

基本上我想在一个对象上有两个方法,其中第一个调用会阻塞任何调用线程,直到另一个线程运行第二个方法:

public class Blocker {

  /* Any thread that calls this function will get blocked */
  public static SomeResultObject blockingCall() {
     // ...      
  }

  /* when this function is called all blocked threads will continue */
  public void unblockAll() {
     // ...
  }

} 

顺便说一句,其目的不仅仅是获得阻塞行为,而是编写一种方法,该方法会阻塞直到将来可以计算所需结果的某个点。


您可以使用倒计时锁存器.

latch = new CountDownLatch(1);

要阻止,请调用:

latch.await();

如需解锁,请致电:

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

在Java中实现阻塞函数调用 的相关文章

  • JNA - EnumProcessModules() 未返回所有 DLL?

    我试图从游戏中读取坐标 当我在通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 以及我在 CheatEngine 中找到的内存时 效果非常好 例如 如果我知道正在运行的进程中的浮点值是0x5AB
  • Java中RandomAccessFile的并发

    我正在创建一个RandomAccessFile对象通过多个线程写入文件 在 SSD 上 每个线程都尝试在文件中的特定位置写入直接字节缓冲区 并且我确保线程写入的位置不会与另一个线程重叠 file getChannel write buffe
  • Spring boot 2.0.5.RELEASE和mongo 4.0连接问题

    我正在关注使用 MongoDB 访问数据教程春季网站 https spring io guides gs accessing data mongodb 我将 Mongo DB 服务器版本 4 安装为服务当我使用客户端连接到它时 它的身份验证
  • jpa2 CriteriaBuilder order by “ORDER BY 表达式必须出现在选择列表中”

    我正在写一个查询标准生成器 但无法添加order by子句 因为它随消息一起抛出错误ORDER BY 表达式必须出现在选择列表中这是我的实体 public class A Integer aId ManyToOne JoinColumn n
  • 初始堆大小无效。无法创建Java虚拟机

    我遇到了下一个问题 我尝试通过startup bat手动启动Tomcat 但似乎没有显示任何结果 然后我尝试运行shutdown bat 控制台显示如下 D apache tomcat 7 0 35 bin gt startup bat U
  • EL 通过 Scriptlet

    在 JSP 中使用 EL 相对于 scriptlet 的优势是什么 EL 被认为是无脚本语言 EL 使 JSP 免受容易出错原始 Java 代码并强制您根据 MVC 思想编写 JSP EL 或像 JSTL 这样的标签库 不可能实现的任何事情
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 为什么我要使用责任链而不是 switch 语句

    考虑一下您已经获得了多次验证 仅当要检查的对象属于某种类型时 这些验证才应生效 为什么我要使用责任链而不是 switch 语句 责任链示例 public class Executor Inject private ValidatorFact
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • selenium webdriver 中的多个程序执行不起作用

    Selenium WebDriver 中的多个程序执行不起作用 我编写了 1 个 testNG xml 文件和 2 个 java 类 我尝试从 xml 文件运行这两个 java 类 但这不起作用 XML代码
  • bufferedinputstream 中标记读取限制有什么用

    我是Java流的新手 我想读取特定的文件内容 然后需要从头开始读取 我创建了一个 BufferedInputStream 但我对 BufferedInputStream mark int markLimit 的文档感到困惑 文档说 publ
  • Java LRU 缓存使用 LinkedList

    堆栈溢出的新手 所以请不要介意我以菜鸟的方式问这个问题 我正在尝试使用链表实现 LRU 缓存 我在这里看到了使用 linkedHashMap 和其他数据结构的其他实现 但对于这种情况 我正在尝试使用链表创建最佳优化版本 正如我在技术期间被问
  • javax.xml.bind.JAXBException: 类 *** 及其任何超类在此上下文中均未知

    我正在尝试通过 REST Web 服务传递对象 以下是我的课程 使用一些示例代码解释了我需要的功能 Rest Web 服务类方法 POST Path find Consumes MediaType APPLICATION FORM URLE
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • 在 REST Web 服务中接受逗号分隔值

    我正在尝试接收 REST URI 中以逗号分隔值形式的字符串列表 示例 http localhost 8080 com vogella jersey first rest todo test 1 abc test 其中 abc 和 test
  • 如何在速度模板中检索哈希图值

    如何从速度模板中的以下哈希图中检索值 请帮忙 LinkedHashMap
  • ASTParser:解析绑定后查找声明节点

    我创建了一个启用了绑定的 AST 当我稍后解析绑定时 我得到了一个有效的 ITypeBinding 但是 当我想要获取绑定的声明 Node 时 它 总是返回 null 除非 ITypeBinding 在 sourceFile 中声明 这是我
  • Lucene/Hibernate 搜索锁定异常

    我使用 Hibernate Search 在 Web 应用程序上索引和全文搜索项目 没有问题 来自我的 pom xml
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv

随机推荐

  • 如何在重启后自动运行应用程序?

    如何在重启后自动运行应用程序 通过 C 代码 我使用应用程序的路径在注册表中的 runOnce 键中创建一个新字符串 操作系统在加载操作系统之前运行此应用程序 我的问题是 我的应用程序加载但资源管理器不加载 在我关闭应用程序后 资源管理器加
  • 无法使用 laravel 检索 GET 参数

    我正在开发一个 Laravel 项目 并尝试从控制器获取 GET 参数 请求页面 date value 应该返回value如下 public function getIndex Request request return request
  • 无法解析 android 符号 - android 应用程序 - intelliJ

    我正在使用 intellij idea 开发 Android 应用程序 我创建了一个带有 android 模块的项目 但这些都不是 import android app Activity import android os Bundle 被
  • std::function 的工作原理[重复]

    这个问题在这里已经有答案了 你知道 我们可以将 lambda 函数包装或存储到std function include
  • 如何在android上编写一个简单的视频播放器?

    我有 Android 上简单音频播放器的代码 但它不适用于视频 请指导我写一个简单的视频播放器 音频播放器的代码是 package com example helloplayer public class HelloPlayer exten
  • AWS s3列表对象与分页

    我想使用 aws s3 实现分页 对象 ms files 中有 500 个文件 但我想一次只检索 20 个文件 下次检索 20 个文件 依此类推 var params Bucket mystore in Delimiter Prefix s
  • 如何将 IB 中创建的自定义 UITableViewCell 类加载到 UITableView 中?

    我对此很陌生 所以请耐心等待 我在 IB 中有一个 xib 其中包含一个 UIScrollView 其中嵌入了一个 UITableView 我想将自定义 UITableViewCells 加载到 UITableView 中 我在 IB 中创
  • 散点图“最佳拟合”线的算法

    我正在使用 MSChart 控件用 C 编写一个小型应用程序来绘制 X 和 Y 数据点集的散点图 其中一些可能相当大 数百个数据点 想问是否有一个 标准 算法来绘制跨点的最佳拟合线 我正在考虑将 X 数据点划分为预定义数量的组 例如 10
  • C++程序崩溃时会自动释放内存吗?

    我在 Google C 编码标准中读到 Google 不使用异常 如果不使用异常 当程序发生错误时如何释放内存 例如 f 调用 g 如果 g 中出现错误 我应该释放 g 中分配的所有内存 然后对 f 调用异常 一旦 f 捕获异常 f 将释放
  • 随机化 Java 中读取的文本文件

    我正在尝试用 Java 读取一个文本文件 基本上是一组问题 有四个选择和一个答案 结构如下 question option a option b option c option d answer 我这样读起来没有问题 public clas
  • Maven 插件在构建过程中执行多次

    我有一个具有多个重叠配置文件的 Maven 项目 我想在每次构建开始时显示活动配置文件 所以我将以下内容放入pom xml
  • CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸视图

    我在 Android 中遇到以下错误 CalledFromWrongThreadException 仅 创建的原始线程 视图层次结构可以触摸其视图 当我尝试更新 Activity 中的 Textview 时 似乎会发生这种情况 更新 Tex
  • ResultSet getFetchSize() 似乎不起作用?

    我遇到了问题getFetchSize 功能 我只需要知道 SQL 查询是否返回零行 我尝试过这个简单的声明 if rs getFetchSize 0 System out println HEADLINE where rs是属于Result
  • 动态添加和删除表行 - Android

    我正在尝试从 TableLayout 中动态添加和删除行 布局在 xml 文件中定义 我能够成功删除一行 但是当我调用相应的 addView 命令时什么也没有发生 table TableLayout findViewById R id ta
  • 将 MySql 日期时间戳转换为 JavaScript 日期格式

    有谁知道我如何获取MySQLdatetime数据类型值 例如YYYY MM DD HH MM SS并解析它或将其转换为在 JavaScript 中工作Date 函数 例如 Date YYYY MM DD HH MM SS 谢谢你 这里给出的
  • php - ftp_get - 警告:ftp_get():打开 BINARY 模式数据连接

    我正在尝试编写一个从 FTP 服务器下载文件的脚本 它们都相当大 每个接近 2GB 该脚本开始运行 但最终因上述错误而终止 与大小有关吗 有没有解决的办法 这是代码
  • Docker RUN 不会保留文件

    我有一个 Docker 问题 它不持久通过 RUN 启动命令 这是我的 Dockerfile FROM jenkins latest RUN echo foo gt var jenkins home toto ls alh var jenk
  • Tomcat NioEndpoint - 运行套接字处理器时出错

    在Spring Boot生产应用中 偶尔会抛出以下异常 o a t u n NioEndpoint Error running socket processor java util NoSuchElementException No val
  • 如何为重叠的 x 轴标签替换新行?

    当在 x 轴上绘制长文本因子时 ggplot 的效果并不好 我想换一条新线 以便更清晰 因此下图中的红色标记标签应该向下一行 我在 中找到了这个问题的答案在这里评论但无法工作 代码是 scale x discrete labels func
  • 在Java中实现阻塞函数调用

    在 Java 中实现阻塞函数调用的推荐 最佳方法是什么 稍后可以通过另一个线程的调用来解除阻塞 基本上我想在一个对象上有两个方法 其中第一个调用会阻塞任何调用线程 直到另一个线程运行第二个方法 public class Blocker An