当前位置: 首页 > 面试题库 >

在某个线程上调用Thread.interrupt()时,会发生什么?

梁楷
2023-03-14
问题内容

Thread.interrupt()在某个线程上调用an 时,该线程会发生什么?


问题答案:

目标线程是“中断的”。通常,在该线程中设置一个标志,该线程可以查看该标志(带有Thread.interrupted())。如果目标线程当前在某些I /
O上被阻塞Object.wait(),则分别使用an InterruptedIOException或an
唤醒它InterruptedException

线程中断是微调线程的一种温和方法。它是用来给线程有机会退出 干净 ,而不是Thread.stop(),这更像是一支突击步枪射击的线程。



 类似资料:
  • 来自文档:http://docs.python.org/2/library/thread 让我们在这里只讨论非守护进程线程。因为第一个引号没有特别提到非守护进程线程,所以我假设,如果主线程退出,即使是非守护进程线程也应该被杀死。然而,第二句引文却表明了另一种情况。事实上,当主线程退出时,非守护进程线程确实不会被杀死。那么,这里的第一个引用有什么意义呢?

  • 问题内容: 我知道从线程调用是一个坏主意。但是,如果线程使用创建新进程,将会发生什么? 新进程将是创建线程的主线程的子进程。我认为。 如果其父级先完成,则新进程将附加到init进程中。它的父级是主线程,而不是创建它的线程。 如果我错了,请纠正我。 问题答案: 新进程将是创建线程的主线程的子进程。我认为。 创建一个新的过程。一个进程的父进程是另一个进程,而不是线程。因此,新流程的父级是旧流程。 请注

  • 问题内容: 我正在学习如何在Android中使用线程,并且为此,我制作了一个播放一系列笔记的小型应用程序。这个想法是,有一个开始按钮和一个结束按钮,(显然)如果您按下开始按钮,它将开始播放音乐,而如果您按下结束按钮,它将停止播放。开始按钮可以正常工作,但是问题是结束按钮不能正常工作。我在找出原因时遇到了麻烦,因此也许有些人可以帮助我。这是代码: 问题答案: 您正在调用正在播放的线程,但此时可能正在

  • 问题内容: 线程启动后,如果该线程的引用设置为,那么该线程将如何处理?会停止吗?它有资格获得GC吗? 像这样: 问题答案: 实时线程将继续运行,即使其引用设置为null。 就像任何其他对象一样,当没有任何引用时,它就有资格使用GC。棘手的一点是,即使您的程序未保留一个 正在运行的线程 在ThreadGroup中的引用,因此 也永远不会 对 正在运行的线程进行GC。

  • 问题内容: 我们有多个线程调用上。 我的理论是,当由两个线程同时调用时,实际上仅将要添加的两个对象之一添加到。这看似合理吗? 如果是这样,您如何解决呢?使用类似吗? 问题答案: 对于ArrayList上的两个线程同时调用add时发生的情况,没有任何保证的行为。但是,根据我的经验,两个对象的添加都很好。与列表相关的大多数线程安全问题在添加/删除时都会处理迭代。尽管如此,我强烈建议不要将Vanilla

  • 问题内容: 当某些调用工作而另一些调用失败时,$ q.all()会发生什么? 我有以下代码: 当所有$ http调用都工作时,则allResponses数组将填充数据。 当我失败时,据我了解,第二个函数将被调用,并且错误变量将给出详细信息。 但是,有人可以帮我解释一下,如果某些响应有效而其他响应失败了怎么办? 问题答案: 我相信,由于Promise库是基于实现的,因此,一旦第一个Promise被拒