【Java】线程超时(设置一段代码执行超时时间)

2023-05-16

[引用原文:https://blog.csdn.net/educast/article/details/51864912]

 

代码

public class ThreadTest {  
  
    public static void main(String[] args) throws InterruptedException,  
            ExecutionException {  
          
        final ExecutorService exec = Executors.newFixedThreadPool(1);  
          
        Callable<String> call = new Callable<String>() {  
            public String call() throws Exception {  
                //开始执行耗时操作  
                Thread.sleep(1000 * 5);  
                return "线程执行完成.";  
            }  
        };  
          
        try {  
            Future<String> future = exec.submit(call);  
            String obj = future.get(1000 * 1, TimeUnit.MILLISECONDS); //任务处理超时时间设为 1 秒  
            System.out.println("任务成功返回:" + obj);  
        } catch (TimeoutException ex) {  
            System.out.println("处理超时啦....");  
            ex.printStackTrace();  
        } catch (Exception e) {  
            System.out.println("处理失败.");  
            e.printStackTrace();  
        }  
        // 关闭线程池  
        exec.shutdown();  
    }  
}  

以上代码的允许任务最大耗时设为1秒,实际任务耗时设为5秒,则结果打印出“任务超时”。

对这两个部分:

Callable<String> call = new Callable<String>() {  
            public String call() throws Exception {  
                //开始执行耗时操作  
                Thread.sleep(1000 * 4);  
                return "线程执行完成.";  
            }  
        };  
try {  
            Future<String> future = exec.submit(call);  
            String obj = future.get(1000 * 5, TimeUnit.MILLISECONDS); 
            //任务处理超时时间设为 1 秒  
            System.out.println("任务成功返回:" + obj);  
        } 

如果把实际任务耗时改为4秒,预设最大耗时改为5秒,则可以打印出“任务成功返回”。

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

【Java】线程超时(设置一段代码执行超时时间) 的相关文章

  • C++11 生产者消费者模型

    C 43 43 11 生产者消费者模型 线程互斥 lock guard 使用lock guard管理互斥锁 在退出作用域后进行析构时就会自动解锁 xff0c 从而保证了互斥量的正确操作 xff0c 避免忘记 unlock 操作而导致线程死锁
  • PS照片处理尺寸参考表

    参考表 一 讲多少寸 xff0c 是指长边的英寸数 xff0c 比如5 x 3 5就是5寸 讲多少R xff0c 指短边的英寸数 xff0c 比如4R是6 X 4寸 xff0c 而3R就是5寸的5 X 3 5寸 R 的意思的 rectang
  • 数据库习题及答案5

    模拟测验1 一 1 2 3 4 5 6 7 8 9 10 A D C c D A C A A C 一 选择题 xff08 在每个小题四个备选答案中选出一个正确答案 xff0c 填在题末的括号中 xff09 xff08 本大题共10小题 xf
  • Attention Model(mechanism) 的 套路

    最近刷了一些attention相关的paper 照着here的列表 43 自己搜的paper xff0c 网上相关的资料也有很多 xff0c 在此只讲一讲自己对于attention的理解 xff0c 力求做到简洁明了 一 attention
  • springMVC常用注解

    在java框架中 xff0c 使用注解的作用就是注入属性 一 Spring常用注解 64 Component xff1a 标注一个普通的Spring Bean类 64 Controller xff1a 标注一个控制器组件类 64 Servi
  • Ubuntu16.04运行.sh文件

    前言 xff1a 最近在学 Linux内核分析 xff0c 实验做的是哈工大的oslab Linux 0 11 xff0c 然后下载了相应的压缩包 解压之后发现需要运行setup sh文件 xff0c 原先以为是因为没有切换到root命令所
  • 服务器conda,pip命令用不了解决方法

    服务器创建用户后 xff0c 不知道为啥基本命令可以用 xff0c 但是conda xff0c pip等不能使用 xff0c 度娘后一行命令解决 xff0c 命令如下 source span class token operator spa
  • Base64资源

    Base64资源 在线转Base64工具 http www jsons cn img2base64 鲸鱼 maskImage src 61 39 data image png base64 iVBORw0KGgoAAAANSUhEUgAAA
  • Linux驱动开发

    本文为一个简单的字符设备驱动 xff0c 涉及驱动编写 测试程序编写 Makefile编写 驱动加载 卸载 xff0c 运行于Linux虚拟机 xff0c 不涉及底层配置 撰写本文的主要目的为记录一下驱动的开发流程 xff0c 参考了正点原
  • SpringBoot MVC配置

    SpringBoot MVC配置 在使用 SpringBoot 进行实际的项目开发前 xff0c 最后再了解一下 SpringBoot 中对于 MVC 的配置 xff01 仍对应 SpringBoot 03 Web 项目 1 MVC配置简介
  • Python常用的运算符

    1 算术运算符 xff1a 43 xff1a 加法 xff1a 减法 xff1a 乘法 xff1a 除法 xff1a 求两个数的余数 例如 xff1a 10 3 输出为1 xff1a 整除 例如 xff1a 10 3 输出为3 xff1a
  • npm报错 TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string.Received undefine

    npm报错 TypeError ERR INVALID ARG TYPE The path argument must be of type string Received undefined 解决办法 xff1a 1 修改static文件
  • 持之以恒(一)位姿转换:姿态 / 四元数 / 旋转矩阵 / 欧拉角 及 位姿矩阵

    文章目录 1 简介1 1 位姿的几种表示形式1 2 姿态转换在线工具 2 位姿转换接口2 1 旋转向量 转 四元数2 2 四元数 转 旋转向量2 3 四元数 与 旋转矩阵 3 机器人相关应用3 1 不同厂家协作机器人的位姿表示形式 1 简介
  • 在pgsql中利用regexp_matches提取出正则并且用, 分隔开。

    在pgsql中利用regexp matches提取出正则并且用 xff0c 分隔开 span class token keyword SELECT span string agg span class token punctuation s
  • 推荐系统经典论文文献及业界应用

    Survey方面的文章及资料 Adomavicius G Tuzhilin A Toward the next generation of recommender systems A survey of the state of the a
  • TIOBE 编程语言排行,各个语言优缺点,以及你适合那种编程语言

    TIOBE 编程语言排行前10中 xff0c 各个编程语言的优缺点如下 xff1a Python 优点 xff1a 易学易用 xff0c 具有大量的第三方库和工具支持 xff0c 适用于数据分析 人工智能等领域 缺点 xff1a 运行速度相
  • ssh整合

    ssh整合 思路pom依赖几大框架的配置文件配置struts xml测试 思路 SSH是 struts 43 spring 43 hibernate的一个集成框架 1 导入所需要的pom依赖 2 几大框架的配置文件 xff08 web xm
  • JavaFX程序入门

    JavaFX程序入门 一 JavaFX基本概念 JavaFX的图形用户界面 xff08 GUI xff09 通常称为场景图 xff0c 场景图是构建JavaFX应用程序的起点 场景图除了包括布局面板 UI控件 图像 媒体 图表等 xff0c
  • 二叉树4:二叉树求树高度(超级详细)

    一 思路 什么是树高 xff1f 树的高度 或深度 就是树中结点的最大层数 在这里使用后序遍历的递归算法 对每一个结点都进行如下操作 xff1a 后序遍历其左子树求树高后序遍历其右子树求树高对这个结点进行下面操作 xff1a 比较其左右子树
  • lottie.js动画的使用(JSON动画)

    在public文件中引入lottie js data json 对应图片 1 引入lottie lt script src 61 34 lottie js 34 gt lt script gt 2 页面引入代码 lt div id 61 3

随机推荐

  • spring(idea版)

    spring 文章目录 xff1a 1 spring简介2 IOC推导原型及本质3 第一个spring程序4 IOC创建对象的方式5 spring配置说明6 Dl依赖注入环境 依赖注入的方式 7 bean的作用域8 自动装配bean9 用注
  • 扩展卡尔曼滤波算法 EKF

    扩展卡尔曼滤波的仿真案例 xff0c 参考书为北航宇航学院王可东老师的Kalman滤波基础及Matlab仿真 一 状态模型 xff1a 二 测量模型 xff1a 状态方程和测量方程中的噪声均为期望为零的白噪声 三 状态模型和测量模型的线性化
  • 什么是end to end

    人工智能领域中 xff0c 什么是end to end xff1f end to end并不是一种技术 xff0c 而是一类思想方法 xff0c 一种特点 所谓end to end xff0c 即端到端 xff0c 指的是从原始数据获取 x
  • 护士实习自我鉴定

    医院实习护士的评价 篇一 短短一个月的泌尿外科实习生活已接近尾声 xff0c 回顾这段时间的实习生活 xff0c 我感受很深 泌尿外科是我实习的第二站 xff0c 相对肝胆外科就不是那么的忙碌 在泌尿外科经历的业务学习是让我印象最深刻的 x
  • MongoDB常用操作命令理解与实战

    文章目录 一 创建操作命令1 数据库操作2 创建集合和添加文档 二 查询操作命令和常用函数1 N A2 查看集合3 文档简单查询4 文档条件查询5 Mongo查询条件和SQL查询对照表6 复合主键7 逻辑操作符匹配 not用法 and 用法
  • 连接数据库时出现10061错误

    问题 xff1a 用Navicat连接数据库时出现10061错误 通过百度证明原因是连接不上MySQL服务器 解决方案 xff1a 打开 我的电脑 点击 管理 点击 计算机管理 服务和应用程序 找到 服务 找到 Mysql xff0c 然后
  • TF-IDF

    1 TF IDF是什么 xff1f TF IDF xff1a term frequency inverse document frequency 1 tf idf 作为一种权重经常被用作信息检索和文本挖掘领域 2 这样一种权重时通过统计计算
  • 搭建STP生成树协议访问服务器

    拓扑图 xff1a 理解 1 确定交换机的角色 xff1a 根交换机 非根交换机 xff0c 比较原则优选级 xff0c 越小越好 xff1b 其次比较MAC地址 xff0c 越小越好 xff1b 2 确定端口的角色 xff1a 根端口 指
  • Hexo博客绑定自己的域名

    1 购买域名 国内的域名服务商有新网 xff0c 腾讯云 xff0c 还有阿里云的万网等 我用的是阿里云 在万网购买了的域名后 xff0c 进入阿里云的管理控制台 域名与网站 域名就可以看到购买的域名此时的域名状态是未实名认证的 xff0c
  • MATLAB学习之图片放大缩小(双线性插值法)

    MATLAB学习之图片放大缩小 这是数字图像处理实验内容 xff0c 老师规定用双线性插值法进行放大缩小 xff0c 不过双线性插值法也太难了吧 xff01 xff01 xff01 代码如下 xff1a span class token o
  • Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?报错

    在linux上使用apt get方式安装nginx时提示Unable to fetch some archives maybe run apt get update or try with fix missing 最后发现是源出现了问题 v
  • chrony

    CentOS8 时间同步服务 CentOS7之前的版本用的是ntpdate服务 xff0c 之后用的是chrony服务 默认是安装的了 查看版本 root 64 centos8 rpm qi chrony Name chrony Versi
  • 网易云音乐(netease-cloud-music)无法通过图标打开,只能用命令行开启

    解决办法 xff08 两种任选其一 xff09 xff1a 1 打开文件桌面图标文件netease cloud music desktop xff1a sudo gedit usr share applications netease cl
  • java: 程序包org.apache.ibatis.annotations不存在

    这个错误是我在直接导入springboot项目的时候报错的 xff0c 解决方法是新建一个spring项目 xff0c 之后将相关文件导入该项目中解决的 导入项目出现错误时可以考虑这样处理一下试试
  • angularJS中把html格式的字符串转成html格式显示,ng-bind-html与trustAsHtml的过滤器

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • 【设计模式】生产者消费者模型

    带你轻松理解生产者消费者模型 xff01 生产者消费者模型可以说是同步与互斥最典型的应用场景了 xff01 文末附有模型简单实现的代码 xff0c 若有疑问可私信一起讨论 文章目录 一 xff1a 为什么要使用生产者消费者模型 xff1f
  • matlab的for循环

    a span class token operator 61 span span class token function rand span span class token punctuation span span class tok
  • 论文笔记之 Collaborative Deep Learning for Recommender Systems

    这篇论文是KDD2015的一篇用DL去做RS的论文 想法挺有意思的 看过论文的同学都知道整体的模型可以用下图表示 xff1a 这里只讲讲整体的思路与理解 xff1a 1 xff09 这是一个CF和CBF结合用bayes去做 2 xff09
  • QGC地面站参数调节

    校准 xff1a 1 选择机架 xff1a 一般用DJI Flame Wheel F450机架 xff0c 选择之后点击 应用并重启 xff1b 2 传感器校准 xff1a 无人机会重新连接地面站 xff0c 依次校准 磁罗盘 陀螺仪 xf
  • 【Java】线程超时(设置一段代码执行超时时间)

    引用原文 xff1a https blog csdn net educast article details 51864912 代码 public class ThreadTest public static void main Strin