`
zhangyi6678
  • 浏览: 76304 次
  • 性别: 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实现任务超时处理方法

    任务超时处理是比较常见的需求,Java中对超时任务的处理有两种方式,在文中给大家详细介绍,本文重点给大家介绍Java实现任务超时处理方法,需要的朋友可以参考下

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

    java通过线程控制程序执行超时,多线程,反射

    java超时控制

    NULL 博文链接:https://z-jls03.iteye.com/blog/1119223

    登陆超时控制

    web.xml session 拦截器 三者结合实现登陆超时后自动返回登陆页面

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    用java实现本地语音实时采取,然后对接阿里AI语音识别实现,语音识别系统。并内部加载逻辑实现电脑语音控制

    用java实现本地语音实时采取,然后对接阿里AI语音识别实现,语音识别系统。并内部加载逻辑实现电脑语音控制

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java开源包4

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包11

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包101

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包6

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包9

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    Jscript实现后台页面无刷新超时自动退出后台的功能

    Jscript实现后台页面无刷新超时自动退出后台的功能,采用倒计时原理,超时时间可以用户自己定制,另外相应鼠标事件,一旦鼠标有操作那么将重新计数,可手动切换是否功能有效。 该程序的目的是为了放置当您打开...

    java开源包5

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包8

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包10

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

    java开源包3

    5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...

Global site tag (gtag.js) - Google Analytics