关于线程 意外死亡 自动重启的问题

SuperBoo SuperBoo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下边是我写的一个 测试线程 :

public class TestThread {
private Thread thread1;

public static void main(String[] args) {
TestThread t = new TestThread();
t.createTread1();
}
/*
* 启动线程
*/
public void createTread1(){
thread1 = new Thread(new ThreadI());
thread1.start();
}
/*
* 判断线程是否死亡,重启线程
*/
public void resetThread1(){
System.out.println("是否存活: "+thread1.isAlive());
if(!thread1.isAlive())
{
createTread1();
}
}
/*
* 伺服线程
*/
class ThreadI implements Runnable {
private int temp = 0;
public void run() {
try{
while (true) {
try {
if(temp>=10)
throw new RuntimeException();
System.out.println("------------循环显示中---------");
Thread.sleep(2000);
temp++;
} catch (Exception e) {
break;
}
}
}finally{
System.out.println("后判断 是否存活");
//try {
// Thread.currentThread().join();
//} catch (InterruptedException e) {
// e.printStackTrace();
//}
resetThread1();
}

}

}
}


以上程序 是我初步的设想 但是这样不能达到我的要求 因为当在finally块中调用 resetThread1方法是 线程并不认为run()方法已经结束,也就是没有死亡.

我想到了另外一个方法,就是不在本线程中 设置重启,另起一个伺服线程 每隔 一段时间 判断本线程是否存活,这样可以实现,但是 一起启动两个伺服线程 我认为很耗内存 ,不知各位高人 有没有好的解决办法 启动一个伺服线程就能解决 意外死亡自动重启 的问题。先谢过了
...全文

相关推荐

Java线程监听,意外退出线程后自动重启的实现方法

下面小编就为大家带来一篇Java线程监听,意外退出线程后自动重启的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38638596

Java线程池及观察者模式解决多线程意外死亡重启问题

Java线程池及观察者模式解决多线程意外死亡重启问题,附件含两个要运行代码!

boguagua112

解决jupyter运行pyqt代码内核重启的问题

在jupyter notebook或者是 Qtconsole下编译运行一个简单的pyqt程序,总是报错: The kernel appears to have died. It will restart automatically. from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sys app = QApplication(sys.argv) window = QWidget(); window.show() app.exec_() 在网上找了半天原因,

weixin_38641366

java、杀死启动进程、定时执行程序、隐藏黑窗口(dos窗口)、线程异常死亡(保活)

java、杀死启动进程、定时执行程序、隐藏黑窗口(dos窗口)、线程异常死亡(保活):就是java自动重启JBOSS

原道有痕

Java理论与实践:嗨,我的线程到哪里去了?

本文介绍了当线程从应用程序中消失时会引起混乱,并且在很多情况下,线程消失时没有(堆栈)跟踪。像对付许多风险一样,防止线程泄漏的最佳方法是预防和检测相结合;注意有可能抛出RuntimeException的地方(如调用外来代码时),并使用ThreadGroup提供的uncaughtException处理程序来在线程异常终止时进行检测。

weixin_38564003
评论 8
收藏 已收藏
分享
返回顶部
SuperBoo
Java SE 62,621 成员 307,251 内容