在执行器服务中实现线程超时

2024-04-17

所以现在我有一个相当基本的执行器服务,我用它来将程序分解为线程,如下所示:

ExecutorService threadPool = Executors.newFixedThreadPool(12);
for (int i = 0; i < objectArray.length; i++) {
    threadPool.submit(new ThreadHandler(objectArray[i], i));
          // The i is used elsewhere
}

我想知道是否有一种好方法来检测/关闭“崩溃”或“冻结”线程?我查看了文档,但它似乎根本不符合我的使用方式......

有人可以帮我弄这个吗?谢谢


threadPool.submit回报Future<T>目的。因此,使用这个未来的对象,您可以控制任务的执行。 通过使用isCancelled() and isDone您可以检查任务是否已取消或完成的方法。更get()正在阻塞调用,在解释或取消或执行异常时抛出异常。

List<Future<?>> list = new ArrayList<Future<?>>();
for (int i = 0; i < objectArray.length; i++) {
    Future<?> task=threadPool.submit(new ThreadHandler(objectArray[i], i));
          // The i is used elsewhere
    list.add(task);
}
for(Future future : list){
   try{
       future.get();
   }catch(CancellationException cx){
   ...
   }catch(ExecutionException ex){
   ...
   }catch(InterruptedException ix){
   ...
   }

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

在执行器服务中实现线程超时 的相关文章

  • 如何抑制 Cucumber/Junit 断言堆栈跟踪

    我有一个黄瓜场景 该步骤使用assertEquals 我的结果报告显示了对最终用户不友好的堆栈跟踪 我怎样才能抑制它 Scenario Add two numbers Given I have two inputs 3 and 2 When
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • 使用 Eclipse 将具有外部依赖项的 Java 项目导出到 jar

    有没有一种简单的方法可以将 Java 项目 包括其所有外部依赖项 导出到标准 jar 文件 我开发了一个使用多个 Apache 库的 SDK 我希望能够将该项目作为单个 jar 发布 到目前为止我找到的这个问题的答案要求将项目打包为 Run
  • Spring @Validated 在服务层

    Hej 我想使用 Validated group Foo class 在执行方法之前验证参数的注释 如下所示 public void doFoo Foo Validated groups Foo class foo 当我将此方法放入 Spr
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 探索java图像处理的好资源[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是图像处理领域的新手 请推荐一些好的资源 书籍和网络链接 来学习 Java 中的图像处理 最适合隐写术分析 适合初学者和高级水平 我看过
  • javax.persistence.TransactionRequiredException:没有可用于当前线程的实际事务的 EntityManager

    我使用 Hibernate 创建了我的第一个 Spring MVC 项目 我的 DAO 层使用 JPA EntityManager 与数据库交互 GenericDao java Repository public abstract clas
  • Apache Commons VFS - 无法解析文件

    VFS 方法无法处理此 URI jboss server temp dir local outgoing配置在jboss beans xml这是决心 C Download jboss eap 5 1 1 server default tmp
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • 为什么我的 @OneToMany 属性出现主键违规?

    我有一个实体 Entity public class Student GeneratedValue strategy GenerationType AUTO Id private long id OneToMany private Set
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • 为本地@ExceptionHandler编写JUnit测试

    我有以下控制器 class Controller ResponseStatus HttpStatus OK RequestMapping value verifyCert method RequestMethod GET public vo
  • 如何从 Java 中“double”类型的值中删除小数值

    我正在调用一个名为 calculateStampDuty 的方法 它将返回 财产需缴纳的印花税金额 百分比计算有效 很好 并返回正确的值 15000 0 但是 我想显示该值 前端用户只是 15000 所以只想删除小数点和任何前面的值 此后
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • JPA 的 Hibernate 查询提示

    我一直在尝试为所有可以通过设置的提示找到一个明确的资源Query setHint String Object JPA 中的方法调用 但我一无所获 有人知道一个好的参考吗 See 3 4 1 7 查询提示 http docs jboss or
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 在Java中将日期“2020-05-22T12:51:20.765111Z”解析为Instant [重复]

    这个问题在这里已经有答案了 如何解析 2020 05 22T12 51 20 732111Z Java 中的 Instant I used LocalDateTime parse startTime DateTimeFormatter of
  • 通过向上转换将 Java.sql.date 转换为 Java.util.date 安全吗?

    java sql date 扩展了 java util date 那么通过将 java sql date 转换为 java util date 是否可以在两者之间进行转换 或者有其他方法可以转换它们吗 您不一定需要强制转换 您可以将 SQL
  • while循环只执行一次

    我很难弄清楚为什么 while 循环实际上不会循环 它运行一次并停止 import java util public class mileskm public static void main String args Scanner inp

随机推荐

  • 如何在R中识别坐标

    我想确定向量的哪个坐标给我带来最大的价值 举一个简单的例子 假设 x lt c 10 22 20 18 5 最大值是22 但是如何自动识别坐标2具有最大值呢 Thanks which max正如 Hong Ooi 指出的那样 是你的朋友 g
  • 如何通过嵌套正确链接 Promise

    我的节点项目当前包含嵌套回调的侧向圣诞树 以便获取数据并按正确的顺序处理它们 现在我正在尝试使用 Promises 重构它 但我不确定如何正确执行 假设我要获取办公室列表 然后获取每个办公室的所有员工 然后获取每个员工的工资 最后 所有实体
  • 在共享内存进程中分配字符串

    我有一个程序需要在两个进程之间共享字符串 我已经声明了一个包含数组的结构 char 该结构体分配有shmget and shmat在主进程被分叉之前 typedef struct Queue int index char directory
  • 如何将 :first-child 选择器与 Shadow DOM 的 元素一起使用?

    我想从自定义元素的内容中提取第一段 作为摘要 我希望以下内容能够发挥作用
  • ObjectDatasource的Select方法抛出异常如何处理?

    我有一个连接到 ObjectDatasource 的 Select 方法 该方法可能会引发异常 但我不知道如何处理它 问题是我无法控制它 当页面呈现时 ObjectDatasource 直接调用 select 方法 并直接抛出未处理的异常
  • 基础目标、活动目标、部署目标

    我知道这个问题的部分内容有多种不同的形式 但我想确保我的答案是正确的 以下是我的假设和理解 我想在提交之前知道它们是否正确 我的应用程序假定所有操作系统都支持功能 因此我应该 将Active SDK设置为最新 当前为SDK 3 0 将部署目
  • Shapeless 中具有常量返回类型的多态函数

    长话短说 我试图弄清楚如何定义从通用输入到单一类型输出的函数 的背景 这是一个延续映射无形状记录 https stackoverflow com questions 26375886 mapping over shapeless recor
  • VSTO 加载项中的 SetProcessDPIAware

    网上有很多关于通过调用为 Winforms 应用程序设置 DPI 感知的帖子SetProcessDPIAware 或者通过对应用程序的清单进行一些相关更改 例如 如何配置应用程序以在具有高 DPI 设置 例如 150 的计算机上正确运行 h
  • 移动应用程序在后台时的 GPS 位置(使用 ionicframework)

    我需要实现一个应用程序来存储用户从 A 移动到 B 时的旅程 路径 现在 我知道 ionicframework 可以使用 GPS 但是当我的应用程序转到后台时会发生什么 我的应用程序如何继续存储用户位置 这可能吗 有没有我可以使用的插件 请
  • 图表网格线样式

    我正在使用 Visual Studio 2010 中的标准图表库 该图表工作正常 但我无法更改轴网格线样式 这些是已在 Form1 Designers cs 中设置的属性 chartArea3 Name ChartArea1 this ch
  • 当我们尝试将字符打印为浮点数和十六进制时,为什么 printf 的行为不同?

    我尝试在 printf 中将字符打印为浮点数并得到输出 0 这是为什么 还 char c z printf f X c c 给出了一些奇怪的十六进制输出 而当我这样做时输出是正确的 printf X c 为什么会这样呢 The printf
  • 如何在 Microsoft Surface 应用程序中显示 PDF 文档?

    我想在我的 Microsoft Surface 应用程序中显示 PDF 文档 我做了一些搜索 发现了很多可能性 但如果在 Microsoft Surface 中使用 所有这些似乎都有一些缺点 这个有趣的 http www screencas
  • 有类似“Firebug for IE”(用于调试 JavaScript)之类的东西吗?

    我正在尝试修复一些 JavaScript 错误 在 Firefox 中工作时 Firebug 使调试这些问题变得更加容易 但是当代码在 Firefox 上运行正常但 IE 却抱怨时 你该怎么办 您还可以查看IE 开发者工具栏 http ww
  • 使用 GOOGLE MAP API 的简单 Android 程序

    尝试使用 Google 地图 这是我使用 google Map API 的第一个程序 由于日志错误 我无法执行 我需要纠正自己的地方 MainActivity java public class MainActivity extends A
  • 如何将 {1,0} 与正则表达式匹配

    or 0 1 will match必要时采取一些模式 但现在我想反过来做 Say 不匹配如果需要的话 解决办法是什么 后面加个问号就可以了 0 1 as in 0 1 并且它会更喜欢匹配零次而不是一次 问号使它 不贪婪 这意味着它不会尽可能
  • UIButton 在 iOS 5.x 中不起作用,在 iOS 6.x 中一切正常

    通过点击主 UIView 上的简单 UIButton 附加视图 子视图 会出现在屏幕中央 以编程方式创建的子视图 在该子视图上 我有 UIButton 启动 MPMoviePlayer 此代码位于创建子视图的方法内部 Create play
  • Hibernate注解@Where带参数

    我目前有此类产品 以这种方式注释 我正在使用软删除 SQLDelete sql UPDATE products SET active 0 WHERE id product and last modification date Where c
  • IE(11)CSS多列处理不当?

    我正在使用 CSS 多列构建 2 列布局 并且我想给出有关在何处断开列的提示 所以我说 columns 2在容器上 以及break before column在我想要休息的地方 IE 在我的例子中是 11 决定将我的内容分成 3 列并溢出到
  • 使用条件对向量进行子集化(不包括 NA)

    vector1 c 1 2 3 NA condition1 vector1 2 vector1 condition1 vector1 condition1 TRUE 在上面的代码中 条件1是 FALSE TRUE FALSE NA 第三行和
  • 在执行器服务中实现线程超时

    所以现在我有一个相当基本的执行器服务 我用它来将程序分解为线程 如下所示 ExecutorService threadPool Executors newFixedThreadPool 12 for int i 0 i lt objectA