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

停止/中断线程在等待套接字输入时被阻塞

丁豪
2023-03-14
问题内容

就像标题所说的那样,我需要一种方法来停止或中断正在等待套接字输入的阻塞线程。


问题答案:

Thread.interrupt()应该是您要寻找的方法。确保您的输入访问方法也检查InterruptedException和ClosedByInterruptException。

另请参阅Sun Concurrency
Tutorial
中的相应页面,作为另一种解决方案的建议。



 类似资料:
  • 问题内容: 在服务器应用程序的某个时刻,我想停止一些正在执行I / O阻止操作的线程。 例如,其中之一具有以下方法: 如果我想停止运行此代码的线程,该怎么办? 在这里,它们显示了操作方法( 如何停止等待较长时间(例如,输入)的线程? ),但是我不明白它们的含义: 为了使该技术起作用,至关重要的是,任何捕获中断异常并且不准备对其进行处理的方法都必须立即重新声明该异常。我们说重新声明而不是重新抛出,因

  • 为此,我创建了一个名为的单例。这个类处理所有的输入阅读内容。我创建了一个名为的方法,它将回调作为参数。在这个方法中,我创建了一个新线程,并在其中等待使用的输入。这个类还有方法,它向上面描述的线程发送中断消息。下面是该类的当前实现: 这个代码极不可靠。我一会儿就告诉你我的意思。我制作了一个名为Client的玩具类,在中,我用计时器模拟了消息收入。 以下是它的工作原理: 我知道这个问题非常长(也许是不

  • 我在使用https域和https套接字io时收到此警告。 我的代码是这样的: 希望有答案来解决这个问题。我已经从其他人那里搜索过,但我申请时发现不起作用。

  • 问题内容: 我有一个执行以下代码的线程: 哪里是。如何才能优雅地停止此类线程?关闭或使用均无效。 问题答案: 这是因为读取System.in(InputStream)是一项阻塞操作。 在这里看是否可以从InputStream读取超时? 这是一种从System.in获取NIO FileChannel并使用超时检查数据可用性的方法,这是问题中所述问题的特例。在控制台上运行它,不要键入任何输入,然后等待

  • null 所以我面临一个问题,如果打开,等待输入,如何停止它?我尝试过将它放在线程中并或使用作为标志,但它并没有停止

  • 我的布局有表面视图。有时当我的应用程序从后台切换到前台时,我会得到ANR。我认为原因是主线程被lock方法阻塞了。 最重要的部分是: