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

如何中断ExecutorService的线程

咸琪
2023-03-14
问题内容

使用ExecutorServicereturn by时Executors.newSingleThreadExecutor(),如何中断它?


问题答案:

为此,您需要将submit()任务分配给ExecutorService,而不是调用execute()。当您执行此操作时,将Future返回一个可用于操纵计划任务的a。特别是,您可以调用cancel(true)关联程序Future来中断当前正在执行的任务(或者,如果该任务尚未开始运行,则完全跳过执行)。

顺便说一句,由返回的对象Executors.newSingleThreadExecutor()实际上是个ExecutorService



 类似资料:
  • 我想使用ExecutorService框架解决一些DNS任务。我使用java API进行DNS查询:1/java.net.InetSocketAddress.InetSocketAddress(String,int)-名称查找2/java.net.InetAddress.getByName(String)-名称查找3/java.net.InetAddress.getHostName()-反向名称查

  • 问题内容: 我向Java的executorservice提交了一堆作业,但我想以某种方式暂时暂停所有这些作业。最好的方法是什么?我该如何恢复?还是我这样做完全错误?我是否应该遵循其他想要实现的模式(即暂停/恢复执行服务的能力)? 问题答案: 为了回答我自己的问题,我在 本身的javadocs中找到了一个示例。这是我使用番石榴显示器的版本:

  • 问题内容: 我需要制作一个具有同步和异步功能的库。 -等到得到结果,然后返回结果。 -立即返回Future,如果需要,可以在完成其他操作后进行处理。 我图书馆的核心逻辑 客户将使用我们的库,他们将通过传递构建器对象来调用它。然后,我们将使用该对象构造一个URL,并通过执行该对象来对该URL进行HTTP客户端调用,并在将响应作为JSON字符串返回给我们之后,通过创建对象将该JSON字符串发送回给我们

  • 假设我有一个Executors静态工厂方法的ExecutorService实例。 如果我从某个线程提交了一个调用,其中RetVal不是线程安全的本地实例化对象,那么当我从同一个线程获得()它时,我需要担心retvals的完整性吗?人们说局部变量是线程安全的,但我不确定当您返回一个本地实例化的对象并从其他线程接收它时,它是否适用。 下面是我的定制实现,我只是为了测试。您可以忽略EType枚举。

  • 我需要使一个库,我将有同步和异步的特点。 -等待得到结果,返回结果。 -立即返回一个将来值,如果需要,该将来值可以在其他事情完成后处理。 my Library的核心逻辑 将执行实际任务的简单类: 当我开始处理此解决方案时,我并没有终止超时的任务。我向客户机报告超时,但任务继续在线程池中运行(可能会长时间占用我有限的10个线程中的一个)。所以我在网上做了一些研究,我发现我可以通过使用取消未来来取消超

  • 问题内容: 我正在尝试停止线程,但是我不能这样做: 因此,即使我调用方法“停止”,线程也不会停止。它一直活着。 如何中断/停止该线程? 更新 (@little方法) 中间件类: 但是,当我尝试停止线程时,它没有。 上面的代码有什么问题? 问题答案: 确实没有必要使用标志。相反,只需使用来查询线程的状态。另外,为什么还要将线程对象包装在另一个线程对象中?对我来说,这似乎完全没有必要。 这是你应该做的