timertask-线程死掉了,还是阻塞了,为什么

问题描述

线程死掉了,还是阻塞了,为什么

我在servlet里创建了一个timer,并在timer中定义了一个timertask,(2分钟执行一次timertask中的run方法)并且没有写任何中断timer的语句

出现了下面的问题(这个问题出现的几率相当小)

后台的日志:

打印了arr_xml_rq00 doSend()66666666 但是没有打印arr_xml_rq00 doSend()77777777,没有异常出现(下面的程序片段在一个try catch 语句块儿中,可以肯定这块程序没有抛出异常)

对应的程序片段:

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-agent","Mozilla/4.0");
connection.setDoOutput(true);
//Read from the connection. Default is true.
connection.setDoInput(true);
//Set the post method.默认是get
connection.setRequestMethod("POST");
//Post 请求不能使用缓存
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(false);
log.info("arr_xml_rq00 doSend()4444444");
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.writeBytes(sendXmlLast.toString());
log.info("arr_xml_rq00 doSend()55555555");
out.flush();
out.close();

log.info("arr_xml_rq00 doSend()66666666");

BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

    String readLine = "";
    sb = new StringBuffer();

    while ((readLine = in.readLine()) != null) {
      sb.append(readLine);
    }

    in.close();
    log.info("arr_xml_rq00 doSend()77777777");

之后timertask再也没有执行过,(因为我还在timertask的run中log.info了别的信息,那些信息没有打印证明了这一点)

请问是线程死掉了,还是永久阻塞了.

时间: 2024-08-30 17:03:43

timertask-线程死掉了,还是阻塞了,为什么的相关文章

java swing 一个窗口打开新创口 加上go()程序就死掉了

问题描述 java swing 一个窗口打开新创口 加上go()程序就死掉了 import javax.swing.*; import java.awt.Rectangle;import java.awt.event.*; public class Swing7 extends JFrame implements ActionListener { JButton jb = new JButton(); public Swing7() { this.setTitle(""Java--&q

android程序,在运行时莫名的死掉,只打印一堆GC信息,其他调试信息看不到

问题描述 android程序,在运行时莫名的死掉,只打印一堆GC信息,其他调试信息看不到 这个程序主要开辟子线程,从服务器获取图片的url,然后利用url从网络下载图片的.运行时,不知何种原因,莫名的死掉,只能打印出一堆GC信息 解决方案 检查你用的这台手机,后台Log开关是否打开了. 百度一下 解决方案二: 从你的描述看,应该是低配置机器的java虚拟机heapsize设置得比较小造成的. 你可以参考下面这个链接,修改一下你的Manifest文件试试. 如果低端机的本身限制了Heapsize,

关于基于TCP网络编程程序死掉问题。

问题描述 服务器点击运行后程序死掉,不知何原因.关键问题在服务器类中的开启线程方法中出了问题.直接上代码,希望高手能指点下迷津,说出错误的原因,感激不尽.服务器类:importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;importjavax.swing.JButt

为什么jasper做excel导出的时候每次gc都启动?而且有时候还会服务死掉!

问题描述 为什么jasper做excel导出的时候每次gc都启动?而且有时候还会服务死掉! 解决方案 解决方案二:怎么没人回复呢?55555解决方案三:应该是先读到内存,然后把内存里的东西写入excel.这样的话,即使gc运行过也会可能出现内存不够用的情况.(尤其是导出文件比较大的时候)解决方案四:呵呵...找到原因了,因为jxl中有一个关于GC的开关是system的property:jxl.nogc(详见jxl.WorkbookSettings),只要把这个值设为true就行了解决方案五:你原

c++基础-求救,C++执行出来程序死掉

问题描述 求救,C++执行出来程序死掉 下边是我写的一点代码,编译能过,但是执行程序的时候程序就卡死了,求大家帮忙!谢谢! int USB_ADBcommand( char *sPath, char *sCommand, char *sInfo ) { char sBuf[10240]; const int PIPE_BUFFER_SIZE = 10240; HANDLE hReadPipe; HANDLE hWritePipe; STARTUPINFO adbProcStartup; SECU

内存溢出-tomcat7运行一段时间总是死掉

问题描述 tomcat7运行一段时间总是死掉 这是打印的错误日志: # A fatal error has been detected by the Java Runtime Environment: # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006d9d6262, pid=4864, tid=3628 # JRE version: 6.0_27-b07 Java VM: Java HotSpot(TM) 64-Bit Ser

HttpWebRequest的GetRespons偶尔超时和死掉的原因及解决办法

在做一个接口的时候,部分需求时根据用户指定的Url,通过Post方式来发送数据,之前的多次调试,一直都是可以正常发送数据获取返回值,但是后来几次的调试,在没有改变代码的前提下,结果GetResponse却始终会超时死掉. 经过上网百度一共找出了下面几种原因与对应的解决办法: 1.修改DefaultConnectionLimit 为更大的值(系统默认为2) System.Net.ServicePointManager.DefaultConnectionLimit = 50; 2.在HttpWebR

网络人没有运行或死掉了怎么办

  在使用网络人的过程中,就会遇到这种情况,对方的网络人软件其实没有运行或者死掉了,而造成对方软件不运行主要有以下3点: 1.对方网络人软件没有设置为自启动 2.对方发现了你安装的网络人软件,所以退出了它,或者卸载了它. 3.对方通过使用一些安全软件扫描系统,发现了多余的启动项,所以自动清除了我们软件的自启动.例如:360安全卫士在启动后,一般会给出用户一个优化启动速度的提示,建议用户将所有不是系统自带的自启动选项清除,如果你没有设置将网络人作为信任程序添加,就可能被360优化掉,造成电脑重新启

使用WAMP进行压力测试,等到TOMCAT报错发现问题,基本解决国航OA服务器慢慢死掉的问题

进入D盘目录下 D:\wamp\bin\apache\apache2.2.21\bin\ 输入命令 abs -H "X-Anhe-Account-Username: 00000dsadasads" -H "X-Anhe-Account-Password: *****" -n 500 -c 1 http://*******:8081/airchina/Services?_action=MAINSCREEN abs -H "X-Anhe-Account-Use