|
1
2
不允许在EJB服务器内创建自己的线程。 在Web容器(如Tomcat)中生成线程并不少见,尽管您应该认真考虑这一点,并确保管理这些线程的生命周期。 |
|
|
2
11
既然你真正的问题已经被回答了,我将在上面的引文中说明。 历史是最初的Java设计者 做 试图解决杀死和挂起线程的问题,但是它们遇到了一个根本问题,它们无法在Java语言的上下文中解决。 问题是,您无法安全地终止那些可以以非原子方式改变共享数据或使用等待/通知机制与其他线程同步的线程。如果您确实在这个上下文中实现了线程终止,那么您将得到对数据结构的部分更新,而其他等待通知的线程将永远不会到达。换句话说,杀死一个线程可能会使应用程序的其余部分处于不确定和中断状态。 允许你杀死线程的其他语言/库(例如,C、C++、C)遭受了我上面描述的相同的问题,即使相关的规范/文本书不清楚这一点。 虽然可能会杀死线程,但您必须在整个应用程序的设计和实现中非常小心,才能安全地完成这项工作。一般来说,很难纠正。 所以(假设)在Java中线程安全是什么?以下是一些想法:
编辑 -响应命令。
互斥锁不是的问题
如果我正确理解这个话题的历史,
现在,如果你勇敢,你可以使用这些方法。在某些情况下,它们可能是安全的。但围绕已弃用的方法构建应用程序并不是一种良好的软件工程实践。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |