设置java函数的响应时间以及超时处理

一些事情的阻隔,然后把好不容易形成的习惯改变。想着尝试改变,却处处触及底线,敛起触角,继续向前。不知不觉,距上次已有2个礼拜了。尔后,卿域非我,子视无卿。
一、应用场景
在有些时候,我们利用debug运行一段代码的时候。会发现,当运行到某处时,编译器久久没有反应。这个过程,假设调用了别人的代码,或者远程的代码或者服务的时候出现的,亦或是自身代码的原因。我们暂时无法预测他的发生,亦或者是无法预期的事,例如远端服务断电,服务宕掉,本地连接尚未关闭。但出现这种情况,不能让人家干等着吧。况且,等个几小时也是白白的徒劳没有效果。
二、 计算Java响应时间,以及超时的处理机制。
(1)计算Java响应时间,可能最初浮现的方法就是下面的方式:
long starttime = System.currentTimeMillis();//记录起始时间
//中间放置,需要计算时间的代码
long endtime = System.currentTimeMillis();//记录结束时间
代码调优的必备,测试计算时间方法。
(2)给代码设置最大响应时间,超时执行异常处理的方法:
实例代码:
package com.css.java.learning.action;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
public class JavaSetTime {

        public static void main(String[] args) {
            Callable<String> task = new Callable<String>() {
                @Override
                public String call() throws Exception {
                //设置执行响应时间的方法体
                    String str = JavaSetTime.sleepJavaTest();
                    System.err.println("打印str"+str);
                    return str;
                    }
                };
                ExecutorService exeservices = Executors.newSingleThreadExecutor();
                Future<String> future = exeservices.submit(task);
                try {
                    //设置方法
                String result = future.get(5, TimeUnit.SECONDS);
                System.err.println("打印result"+result);
                } catch (Exception e) {
                    e.printStackTrace();
                    //异常处理的方法
                    System.err.println("5秒钟没有执行完毕!这里是异常处理的方法");
                }
        }

        public static String sleepJavaTest() {

            try {
                /*java中sleep与wait的区别
                 * 对于sleep方法导致程序暂停执行指定的时间,让出cpu给其他线程。但是它的监控状态依然保持,时间到了就会恢复。
                 * 在sleep方法中,线程不会释放对象锁。
                 * 对于wait方法,线程会放弃对象锁,进入等待次对象的等待锁定池,
                 * 只有针对此对象调用notify()后,本线程才进入对象锁定池的准备。
                 */
                Thread.sleep(6000);
                return "当前函数成功的返回";
            } catch (InterruptedException e) {
                e.printStackTrace();
                return "执行异常";
            }
        }

}.
当我们给执行的方法体设置超出预定的时间的时候:
运行结果:

当给出的方法体执行时间在预定的范围之内时
Thread.sleep(4000),得到运行效果:

【题记】
笔者只是,遇到了然后亲测并记录下这个方法。若比优者,后定当存之。

原文地址:http://blog.51cto.com/13479739/2308139

时间: 2024-10-21 17:09:01

设置java函数的响应时间以及超时处理的相关文章

JS调用Java函数--DWR框架

(1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许 在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.它包含两个主要的部分:允许JavaScript从WEB服务器上一 个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动

windows上自动设置java环境变量的脚本

转:http://www.cnblogs.com/flowwind/p/4066146.html 近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要设置java环境变量,java环境变量要设置 JAVA_HOME,Path,CLASSPATH三个值,每次配置查百度复制粘贴都很麻烦,所以想着偷懒下,用脚本直接执行就很快了,搜了下bat的命 令,写了个配置java环境变量的脚本. 这里默认设置了java jdk的安装路径为C:\Program Files\Java\jdk1.7

初学JAVA函数

  函数是定义在类中的具有特定功能的小程序,函数也称为方法(将功能代码封装,便于对该功能进行服用,只有被调用施才会被执行) 静态函数所调用的被调用函数也必须是静态. 格式: 修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2) { 执行语句: Return 返回值: } 特殊情况:功能没有返回值时,return的后面直接用分号结束,因为没有具体返回值,所以此时的返回值类型用void来表示. 函数提高了代码的复用性. class test617 {        public stat

Linux中如何设置java环境变量

这里介绍Linux下如何设置java环境变量. 工具/原料 Linux java环境变量 方法/步骤 1 查看java的安装路径   查看java执行路径   配置java环境变量   java的安装路径和执行路径   注意这里的JAVA_HOME后面一定要带上bin路径,路径设置完成一定要用 export输出,注意export单词不要写错了   设置环境变量后使用java的v参数测试,还是失败,因为没有执行source命令   环境变量修改后执行source命令,使得配置生效   运行sour

Java 函数的参数说

java函数参数传递的到底是值还是引用对确实容易让人迷糊.而很多时候因为对这个问题的模糊甚至造成一些错误.最常见的说法是基本类型传的是值,对象传的引用.对于基本类型,大家都达成共识,没有什么可以争论的.但对于对象传递,还有一说是也是值传递.首先来看一个例子.一个简单类person,只有一个属性name,和一个人事系统.如下所示: public class Person{ private String name; public Persion(String name){ this.name = n

如何设置Java开发环境

傻瓜式 设置Java开发环境 跟我来. 对与win7操作系统.有两种方法. 第一种: 1.下载JDK,完成安装. 2.右键我的电脑,选择属性,在左边找到高级系统设置左键单击打开,在高级选项中找到 环境变量,单击打开. 3.在系统变量中找到path这个变量,然后在后面加个英文符号的  ;   ,然后在后面写上你安装jdk的路径(一定是JDK的路径,JRE是不行的),到bin结束. 4.再在系统变量中添加一个classpath的变量,值给一个英文的   .   ,就OK了. 5.在开始菜单运行cmd

Webkit IDL中自定义[命名]属性的获取(Getter)以及设置(Setter)函数

一.自定义命名属性的获取(Getter)以及设置(Setter)函数: [CustomNamedGetter](i), [CustomNamedSetter](i) 命名属性的W3C链接如下:?The spec of named properties (注意,下面描述的webkit行为和W3C的规范是不同的) 总结: [CustomNamedGetter] 或者 [CustomNamedSetter] 允许你为命名属性的getter或者setter编写自己的绑定函数. 用法如下: [ Custo

[工具篇]eclipse 中设置 Java/JSP/JS/HTML/CSS 智能提示

Visual Studio 2010 中的智能提示很好用,在eclipse中是否也可以通过设置使得java代码文件.jsp文件.html文件.css文件.js文件时也能有这样方便的智能提示呢?应该是有的: 1.设置java代码智能提示 1)打开eclipse→Windows→Preferences→Java→Editor→Content Assist 2)修改Auto Activation triggers for java的值为:zjava   点击apply按钮.(zjava主要是用在后面替

windows7设置java的环境变量

win7 下配置 java 环境变量 首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入“计算机”的“属性”选项,选择“高级系统设置”,如下图所示: 2.点击“高级系统设置”后,会看到如下图所示的对话框,选择“环境变量”: 3.点击“环境变量”之后,会看到如下图所示的对话框: 4.接下来就是具体的配置过程了: ①.选择上图所示的“新建”, “变量名”:Ja