【发布时间】:2010-01-10 05:10:21
【问题描述】:
博览会:
我认为 Java VM 很棒。它保证了字节码的安全性,标准库,......非常棒,尤其是动态加载 Java 类的能力,并且知道它不会使 VM 崩溃(祝你好运 *.so 文件或内核模块)。
有一点我不明白,Java 是如何处理 Thread.stop 的
我读过http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html 但这似乎很奇怪,原因如下:
1) 资源管理
在 Unix 操作系统上,如果一个进程占用了资源,我可以杀死它 -9。
2) 抽象的破坏:
如果我开始一项计算量很大的工作,并且我不再需要计算,我可以杀死 -9 它。在这个 Java 线程模型下,我的 计算线程 必须定期检查一些布尔标志以查看它是否应该退出 [这似乎破坏了抽象层——当我编写计算代码时,我应该专注于在计算代码上,而不是在哪里展开检查它是否应该终止。
3) 锁/监视器的安全性
所以官方的原因是“什么是线程持有锁/监视器并且它得到 Thread.stopped ?对象将处于损坏状态” - 然而,在操作系统中这不是问题,我们有中断处理程序。为什么 Java 线程不能有像 OS 中断处理程序一样工作的中断处理程序?
问题:
很明显,我在考虑 Java 线程的思维模式是错误的。我应该如何考虑 Java 线程?
谢谢!
【问题讨论】:
标签: java multithreading