codenameone - 代号一 - 如果线程崩溃或阻塞会发生什么?
问题描述
在代号一学院的模块“性能与内存调优”的第二课(课程“Deep Dive into Mobile Development with Codename One”)中,有一个使用静态方法进行优化的示例com.codename1.ui.CN.startThread(Runnable r, String name)
。
如果我使用静态方法,它是否完全相同(关于崩溃保护和其他功能)com.codename1.util.EasyThread.start(String name).run(Runnable r)
?我有这个疑问是因为JavadocstartThread
明确提到了崩溃保护,而JavadocEasyThread
没有。
一般来说,如果线程崩溃或阻塞会发生什么?
解决方案
EasyThread
内部使用startThread
所以应该没问题。崩溃时的行为因操作系统而异,这很重要,因为本机操作系统可以在我们控制有限的情况下启动自己的线程。
在 iOS 上,我们将非法访问和类似错误转换为 Java 异常,因此它们应该遍历堆栈并可能会使用通用的 catch all 语句,但这并不是万无一失的。
推荐阅读
- java - Ajaxswing(将 Java 桌面应用程序转换为 Web 应用程序)- ClassNotFoundException: org.apache.logging.log4j.LogManager
- c# - 多线程导致竞争条件
- reactjs - 如何传递.d.ts对返回扩展React.Component(vscode)的类的函数的注释
- sql - 我在 DEV 和 PROD 中具有完全相同的代码,并且 PROD 上的少数属性(PII 数据)被屏蔽,而在 DEV 上则没有
- r - Power Bi 中 qicharts2 p 图表的问题:没有显示线,只有点
- java - 在循环中随机填充的值范围
- node.js - 我怎样才能弄清楚为什么 MongoDB NodeJS 驱动程序没有返回单个集合的有效查询的结果?
- php - 使用表单验证和操作更新 PHP 中的 Crud 操作
- vba - word用户窗体上的字母控制
- c++ - C++ try/catch 块不捕获给定类型的异常