`
wangxuliangboy
  • 浏览: 210661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java 控制方法超时

阅读更多

对执行方法进行超时控制:
public static boolean executeTimeControlMethod(Runnable runable, long timeout) {
        // 创建一个使用单个 worker 线程的 Executor
        ExecutorService service = Executors.newSingleThreadExecutor();
        //提交一个 Runnable 任务用于执行,跟踪一个或多个异步任务执行状况而生成 Future 的方法。
        //submit(Runnable task, T result) task - 要提交的任务 result - 返回的结果
        Future result = service.submit(runable, 1);
        try {
        //get(long timeout, TimeUnit unit) 等待timeout时间之后,检索其结果
        //正常的应该返回submit方法传入的result
            if (result.get(timeout, TimeUnit.MILLISECONDS) != null) return true;
        //也可以通过cancel(boolean mayInterruptIfRunning) 取消对此任务的执行  
        //当调用 cancel 时,如果调用成功,而此任务尚未启动,则此任务将永不运行。 
         

        // 试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。
            service.shutdownNow();
        } catch (Exception e) {
        }
        return false;
    }

 

其它我们自己也可以写一个对方法执行超时的控制:

    先设一个共享变量,

    用一个主线程去睡眠超时时间,用子线程去执行方法体.当子线程运行完成时,

    去更改这个共享变量的值(坐一个标记).当主线程继续执行时,判断这个共享变量的值是否有改变,

    如果有的话,则说明这个方法已经执行完成..

    如果没有改变的话,说明方法执行超时,终止子线程.

分享到:
评论

相关推荐

    java通过线程控制程序执行超时(新)

    在Java编程中,控制程序执行超时是一项重要的任务,特别是在多线程环境下,我们可能需要确保某个任务不会无限制地运行下去,导致资源耗尽。本文将深入探讨如何使用Java的线程机制来实现程序执行的超时控制,同时也会...

    Java线程超时监控

    另外,`java.lang.Thread`类也提供了一种实现线程超时的方法,通过使用`join`方法。`join`可以等待某个线程结束,同时可以设置一个等待时限。 ```java Thread thread = new Thread(() -> { // 需要监控的线程代码 ...

    java超时控制

    通过阅读和分析提供的文档和文本(例如`java超时限制.doc`,`java超时限制2.doc`,`java超时限制3.txt`,`java超时限制2.txt`,`java超时限制4.txt`,`java超时限制.txt`),我们可以获取更多关于Java超时控制的具体...

    java通过线程控制程序执行超时

    在Java编程中,控制程序执行超时是一项关键任务,特别是在多线程环境下,我们需要确保某个任务不会无限期地运行,导致资源浪费或者阻塞其他重要任务。本篇将深入探讨如何利用Java的线程和定时器(Timer)来实现这个...

    Java实现任务超时处理方法

    Java实现任务超时处理方法 Java实现任务超时处理方法是指在Java中对超时任务的处理,主要有两种方式:基于异步任务结果的超时获取和使用延时任务来终止超时操作。 基于异步任务结果的超时获取是通过使用Future对象...

    Java线程超时控制的实现.docx

    本文将详细介绍两种实现Java线程超时控制的方法,并对其原理和应用场景进行深入分析。 #### 二、方法1:使用守护线程实现超时控制 这种方法通过创建一个守护线程来监控目标线程的执行时间。当达到预设的时间阈值时...

    java 访问网络 下载文件 爬虫 超时处理解决方案

    这两个方法都采用了线程和超时处理相结合的方式,通过`DownloadThread`和`GetHtmlThread`类实现了网络操作的异步执行和超时控制。其中,`timeOutMs`变量设定了操作的最大等待时间,而`retry`变量则指定了最大重试...

    Java编程Webservice指定超时时间代码详解

    } } 在Java中,Webservice调用时指定超时时间是一个关键的设置,因为如果没有设定或者设定不当,可能导致程序在等待响应时无限制地阻塞,从而影响整体系统的稳定性和效率。上述代码片段展示了如何在Java中通过JDK...

    BlockingQueue队列自定义超时时间取消线程池任务

    `newFixedThreadPool`是`java.util.concurrent`包中的一个线程池工厂方法,用于创建固定数量线程的线程池。`FutureTask`则是表示异步计算的结果,它实现了`RunnableFuture`接口,提供了对任务状态的查询和结果获取。...

    java版远程控制的实例demo

    Java远程控制技术是一种在计算机网络中,通过编程实现一台设备(客户端)对另一台设备(服务器端)进行操作的方法。这种技术广泛应用于系统管理、自动化运维、分布式系统监控等领域。在这个"java版远程控制的实例...

    Java远程控制服务端和客户端源代码

    总的来说,Java远程控制服务端和客户端的源代码示例提供了一种通过网络实现远程操作的方法,结合了网络通信和GUI自动化,是学习和理解这两方面知识的好教材。通过阅读和分析源代码,开发者可以深入了解网络编程和GUI...

    Java实现商城订单超时取消功能

    在Java中实现商城订单超时取消功能,主要是利用了JDK中的`DelayQueue`数据结构。`DelayQueue`是一个无界的阻塞队列,它仅允许存放实现了`Delayed`接口的元素,这些元素只有在到达指定延迟时间后才能被取出。这种特性...

    Java远程控制源代码

    Java RMI是Java中实现远程方法调用的核心机制,它允许一个对象在一台机器上的Java虚拟机(JVM)上调用另一个JVM中的对象的方法。在Java远程控制中,RMI是基础,它负责创建远程接口、远程对象和注册这些对象到RMI...

    java后台权限控制

    这可能涉及在每个控制器方法前添加权限检查,或者使用AOP(面向切面编程)来全局处理。 - **会话管理(Session Management)**:跟踪用户的在线状态,存储用户信息。这需要服务器端存储会话信息,并处理会话过期。 ...

    Java HttpURLConnection超时和IO异常处理

    - `setReadTimeout(int timeout)`:此方法用来设置从网络读取数据的超时时间,如果在指定时间内未读取到任何数据,也会抛出`SocketTimeoutException`。在这个示例中,读取超时时间同样设置为600000毫秒,即10分钟。...

    java控制页面刷新频率

    ### Java控制页面刷新频率 在Web应用中,页面的自动刷新通常涉及到对服务器时间的跟踪以及与客户端交互的管理。Java作为一种广泛使用的服务器端编程语言,提供了多种方法来控制页面刷新频率,其中最常用的是通过...

    Socket接受数据超时

    在本篇中,我们将深入探讨Socket接收数据超时的原理,以及如何利用Java中的`Callable`接口来解决这个问题。 首先,理解Socket的基本概念至关重要。Socket是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议...

    Java超时订单管理系统源码.zip

    5. **控制器层**:Controller层处理HTTP请求,调用服务层的方法,将结果返回给前端。可能使用了Spring MVC或者Spring WebFlux框架。 6. **定时任务**:为了实现订单超时的自动处理,系统可能使用了Spring的定时任务...

    基于java的判断DTU超时功能的研究与设计毕业论文设计.doc

    本文旨在探讨如何利用Java编程语言实现DTU超时检测功能,增强农业物联网的网络通信能力,确保系统稳定性和资源的有效利用。 DTU,作为远程通信的工具,通常涉及无线网络技术,它负责采集现场数据并将其传输至数据...

    java编写的OPCclient

    OPC(OLE for Process Control)是微软Windows环境下的一个标准接口,它允许不同的应用程序之间共享过程控制数据。在本场景中,Java作为开发语言,提供了一种跨平台的方式来实现OPC通信,打破了传统OPC客户端通常由...

Global site tag (gtag.js) - Google Analytics