
正文
java代码响应超时 java超时异常处理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java 方法 执行超时处理
java 1.5以上的Future类可以执行超时处理。
jdk1.5自带的并发库中Future类中重要方法包括get()和cancel()java代码响应超时,get()获取数据对象java代码响应超时,如果数据没有加载java代码响应超时,就会阻塞直到取到数据,而 cancel()是取消数据加载。另外一个get(timeout)操作,表示如果在timeout时间内没有取到就失败返回,而不再阻塞。
代码如下java代码响应超时:
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import com.sun.corba.se.impl.orbutil.closure.Future;
import com.sun.corba.se.impl.orbutil.threadpool.TimeoutException;
public class ThreadTest {
public static void main(String[] args) throws InterruptedException,
ExecutionException {
final ExecutorService exec = Executors.newFixedThreadPool(1);
CallableString call = new CallableString() {
public String call() throws Exception {
//开始执行耗时操作
Thread.sleep(1000 * 5);
return "线程执行完成.";
}
};
try {
FutureString 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();
}
}
相关问答
Q1: javareadtimedout如何解决
1、将JMETER脚本里的请求超时时间由1000ms修改为10000ms就可以了。
2、服务器的熔断器里的timeout需要调整,等遇到再更新。
Q2: java题目运行超时是怎么回事
首先确保没有加package,类名称为Main。
为了运行效率,请使用
[java] view plain copy
因为pat系统对scanner支持不友好且运行时间长。
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
请在使用完bufferedreader之后立刻使用close()java代码响应超时;方法关闭,否则可能会发生内存泄漏(关闭java代码响应超时的越早越好)。
【重要】请不要随便import没有用到java代码响应超时的包,亲测若是导入了java.util.Scanner可是java代码响应超时你没有用到scanner,就会返回非零。
二、对于运行超时
一般对于100ms时间限制的题目,基本ac不了,哪怕优化得再好。因为很多乙级题目运行时长(该死的jvm启动)在100ms上下,运气好ac的多,运气差全超时!
200ms以上的题目,若是运行超时,那就请不要用暴力破解。
还是超时的话,建议换语言。官方说明:选择合适的语言也是一种技巧,所以不给你java放宽时间限制!
Q3: curl请求成功,java500超时
这种情况可能是由于Java代码中的请求超时时间设置过短,导致请求在未收到响应之前就超时了,建议您检查Java代码中的请求超时时间设置。
Q4: java项目页面为什么会超时?
你说的是请求没有响应吧,首先检查服务器有没有错误的log,如果是调试,看看是不是存在断点,如果不是这两种情况,那么代码肯定是存在一定的问题,需要细心的排除代码哪里停住了,一般不会是直接的执行错误,执行错误页面会返回错误的页面比如404,500等等
Q5: java请求响应超时 设置为更大的值
(1) 对方已关机,或者网络上根本没有这个地址
(2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时
的信息。
(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。
你会问怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说
明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
(4)错误设置IP地址
正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网
)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一
子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机
器时,会存在这样的问题:
A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。
B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,
Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须
简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了
。
2.Destination host Unreachable
(1) 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping
192.168.0.1.4就会出现“Destination host Unreachable”。
(2)网线出了故障
这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的
路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出
现“destination host unreachable”。
3.Bad IP address
这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。
4.Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
5.Unknown host——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有
故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
6.No answer——无响应
这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下
列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中
心主机存在路由选择问题。
7.Ping 127.0.0.1:127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
8.no rout to host:网卡工作不正常。
9.transmit failed,error code:10043网卡驱动不正常。
10.unknown host name:DNS配置不正确。
关于java代码响应超时和java超时异常处理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






