为什么Thread.stop()
这么危险?
为什么建议改为使用Thread.interrupted()
?
我知道stop
已弃用。还有什么使它不安全的?
有什么地方可以使用stop
方法吗?如果是这样,请举一个例子。
为什么Thread.stop()如此危险?
此处详细描述了这些问题:http
:
//download.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html
为什么建议改用Thread.interrupted()?
因为Thread.interrupt()
可以让中断的 目标线程 在知道 安全的情况 下响应。
我知道不建议停止使用。还有什么使它不安全的?
请参阅上面的链接。
有什么地方可以使用停止方法?如果是这样,请举一个例子。
从理论上讲,如果您知道要停止的线程:
例如,我认为stop()
此线程是安全的:
new Thread(new Runnable(){
public void run(){for (long l = 0; l > 0; l++){}}).start();
但是,在大多数情况下, 很难
进行分析来确定呼叫stop()
是否真正安全。例如,您必须分析线程使用的所有可能的代码位(包括核心库和第三方库)。因此,默认情况下使其不安全。
问题内容: GoogleJavaScript样式指南建议不要扩展。但是,我用它来在不存在的浏览器中使用它(以及类似方法)。 我知道一些问题,但不是哈希表。 扩展时可能会出现什么问题,使Google对此提出建议? 问题答案: 大多数人都错过了这一点。我认为,例如填充或填充标准功能,使其在较旧的浏览器中运行,是一个好主意。不要听那些讨厌的人。Mozilla甚至向您展示了如何在MDN上执行此操作。通常,
两者都将找到答案996没有问题。我们使用modulos来保持合理的输出大小,使用pair来避免指数分支。 对于n=5000,C++代码输出783,但Python会抱怨 如果我们加上几行
问题内容: 我只是在学习PyQt,并研究信号和插槽机制。我对冗长的语法有些困惑。我们为什么有: 我更喜欢写以下内容: 谁能告诉我为什么connect()语法需要如此明确/冗长? 问题答案: 您可以使用PyQt的新型信号,这些信号不那么冗长: 成为:
问题内容: 我正在研究THREE.js,并注意到其中定义函数的模式如下: 这种方法的 正常 变化如下所示: 将第一个版本与 正常 版本进行比较,第一个版本似乎有所不同: 它分配一个自动执行功能的结果。 它在此函数内定义了局部变量。 它返回包含使用局部变量的逻辑的 实际 函数。 因此,主要的区别在于,在第一个变体中,初始化时,bar仅分配一次,而第二个变体在每次调用时都会创建此临时变量。 关于为什么
问题内容: 我在代码的第34行上不断收到LineUnavailableException:https://www.refheap.com/21223 错误显示为。 我正在创建Sound类的多个实例(在我的refheap粘贴中实现)。似乎最初的实例没有问题。但是,当我开始使用相同的音频文件制作Sound对象的新实例时,便开始出现此错误。 知道如何解决吗? EIDT:我认为这个问题的 想法可能是我需要
问题内容: 说,我有一种方法: 然后在尝试编译此代码时: 我得到一个错误。谁能解释为什么类型系统不能推断Collections.emptyList()应该是类型吗? 上面的示例显然是很人为的,但是我一直都在偶然地遇到这种限制,这确实很烦人。阅读了 Effective Java 之后,我发现您可以轻松地完成工作(必须说,当时对我来说是一个启示),并且一切都可以顺利编译,但是当您使用复杂的类型时,确实