发生了什么事在Linux死亡Java线程?

发生了什么事在Linux死亡Java线程?,第1张

概述发生了什么事在Linux死亡Java线程

我的项目中有一个NullPointerException,我想评估这个问题的严重性。 在线程完成它的任务之前抛出exception,无论如何将会死亡。 我的代码没有抓住这个例外,所以线程已经死了。

这是一个简单的模拟情况:

public class Test extends Thread { public static voID main(String[] args) throws InterruptedException { Test thread = new test(); thread.start(); while(true) { System.out.println("I'm still here!"); Thread.sleep(1000); } } public voID run() { String s = null; int len = s.length(); // causes NullPinterException } }

我的问题是:现在会发生什么事情发生在这个可怜的线程? 它的linux文件描述符被释放了吗? 在这种types的代码中是否会出现任何稳定性或内存问题?

我可以让Visual Studio在用户定义的C ++exception中断开吗?

linux上来自共享对象(.so)的例外情况

在使用java web start实现自动更新桌面应用程序时出现AWTPermissionexception

由于EINTR epoll_wait失败,该如何解决?

在命令提示符下无法捕获KeyboardInterrupt两次?

使用Delphi删除@R_301_5087@防火墙规则(例外)

如何在这种情况下保护代码免受崩溃

在这个exception消息中引用了什么“配额”:没有足够的配额可用于处理此命令

SEHexception代码中位31和30的含义是什么?

什么错误/exception触发@R_301_5087@错误报告?

处理与任何其他终止的线程没有什么不同。 之前发生的一件事就是根据规则(特定的Thread , ThreadGroup ,所有线程)搜索一个UncaughtExceptionHandler ,但除此之外,正常的清理过程如下所示。 当一个线程被一个未被捕获的异常终止时,与“正常”终止相比,系统资源(取决于Thread实现)或内存问题没有特定的后果。

这根本不是关于线程的。 看看你的代码:

String s = null; int len = s.length();

当你调用s.length() , s确实是null ,导致NullPointerException 。 给s分配一些值,你会得到它的长度。

总结

以上是内存溢出为你收集整理的发生了什么事在Linux死亡Java线程?全部内容,希望文章能够帮你解决发生了什么事在Linux死亡Java线程?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存