0 0

ScheduledThreadPoolExecutor里面如何删除一个任务?10

ScheduledThreadPoolExecutor里面通过scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)方法提交了几个按照固定间隔时间执行的任务。
添加完毕运行一段时间后,我想删除其中一个任务。

ScheduledThreadPoolExecutor类提供了remove(Runnable task)方法。
可是我每次执行remove方法,都返回false,无法删除任务。


利用ScheduledThreadPoolExecutor类的BlockingQueue<Runnable> getQueue() 方法,返回任务列表去contains我的任务,也返回false。

请问,我如何在ScheduledThreadPoolExecutor里面删除一个已经提交的任务?
2012年1月13日 17:02

1个答案 按时间排序 按投票排序

0 0

为什么要删除任务呢

2012年1月29日 01:34

相关推荐

    源码解析文件ScheduledThreadPoolExecutor

    在 Java 中,ScheduledThreadPoolExecutor 是一个线程池执行器,用于执行延迟任务。它使用DelayedWorkQueue来实现延迟的效果。下面是 ScheduledThreadPoolExecutor 的实现细节: 首先,ScheduledThreadPoolExecutor...

    Java自带定时任务ScheduledThreadPoolExecutor实现定时器和延时加载功能

    - 更好的异常处理机制,当一个任务抛出异常时,不会影响其他任务的执行。 - 可以更精确地控制任务执行的时间间隔和延迟。 - 可以通过`shutdownNow()`优雅地停止所有任务。 ### 4. 使用注意事项 - 确保根据应用的...

    java定时任务开源案例

    - `java.util.concurrent.ScheduledExecutorService`: 这是Java并发包中的一个接口,通过实现该接口的类(如`ScheduledThreadPoolExecutor`)可以创建一个可调度的任务池。相比`Timer`,它更强大,支持多线程并行...

    java定时任务调度

    - `TimerTask`是一个抽象类,作为定时任务的基类,你需要继承它并重写`run()`方法来定义你的任务逻辑。 - 使用`Timer.schedule(TimerTask task, long delay)`方法可以设置一次性的延迟执行,`Timer.schedule...

    线程池、任务、任务组、任务池,定时任务的类库-hy.common.tpool.zip

    线程池(ThreadPool)是Java并发编程中一个重要的概念,它是多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池可以有效控制运行的线程数量,如果线程数量超过了最大数量,超出...

    定时任务与线程池:并发编程的关键

    DelayQueue内部实现了一个基于时间优先级的PriorityQueue,保证任务能按计划时间顺序执行。文档还详细描述了任务如何在工作线程中被执行和重新安排。此外,文档探讨了ScheduledFutureTask类,它是任务调度的核心,...

    JAVA定时任务

    Java定时任务是Java编程中一个重要的概念,它允许开发者在特定的时间间隔或特定时间执行某项任务,这对于系统维护、数据备份、定时提醒等场景非常有用。本篇将围绕Java定时任务这一主题展开,深入探讨相关知识。 1....

    基于任务线程处理例子

    任务是可执行的工作单元,它可以是一个简单的函数调用,也可以是一个复杂的业务逻辑。在Java中,`java.util.concurrent`包提供了`Future`和`Callable`接口来表示具有返回值的任务,而`Runnable`则用于无返回值的任务...

    java 定时器线程池(ScheduledThreadPoolExecutor)的实现

    当一个任务的延迟时间为负值时,表示任务已经到达执行时间,`finishPoll()`方法会将任务从队列中移除并返回,准备执行。 在`ScheduledThreadPoolExecutor`中,任务的定时执行是通过`schedule()`、`...

    java定时任务

    Java定时任务是Java开发中一个重要的功能模块,它允许程序按照预定的时间间隔或者特定时间点执行特定的任务。在企业级应用开发中,定时任务被广泛用于数据同步、报表生成、邮件发送、缓存清理等场景。Java提供了多种...

    WebService 定时任务 任务预警

    开发者可以创建一个ScheduledThreadPoolExecutor实例,然后通过其scheduleAtFixedRate或scheduleWithFixedDelay方法来安排周期性任务。此外,Spring框架提供了更高级的定时任务管理,如@Scheduled注解和Task...

    Java定时任务实现解析.pptx.pptx

    Java定时任务是编程领域中一个重要的概念,它允许开发者安排任务在特定时间点或按预设周期执行。这种功能在各种应用中都有广泛用途,比如系统维护、数据处理和用户行为分析。本篇将深入解析Java定时任务的原理、常见...

    java定时器(定时任务)

    - 通过实现此接口的类,如 `ScheduledThreadPoolExecutor`,可以创建一个线程池,用于执行定时任务。 - `ScheduledExecutorService` 提供了多个方法来安排任务,例如 `schedule(Runnable command, long delay, ...

    Java语言定时调度任务之实现.pdf

    TimerTask类是所有任务类的抽象父类,它包含一个抽象的run方法,子类需在此方法中实现具体的业务调度逻辑。 Timer调度的核心局限在于它使用单线程来执行任务,因此如果某个任务出现延时,将会直接影响后续任务的...

    Spring 异步多线程动态任务处理的使用心得

    要启用异步任务,我们需要在配置类上添加`@EnableAsync`注解,并配置一个TaskExecutor。TaskExecutor可以是简单的ThreadPoolTaskExecutor,也可以是更高级的如ScheduledThreadPoolExecutor,用于定时任务。配置示例...

    Java并发编程之美_部分81

    在Java中,TimerTask是一个常用的定时器组件,但是它有一个致命的缺陷,那就是当任务在执行过程中抛出InterruptedException之外的异常时,唯一的消费线程就会因为抛出异常而终止,那么队列里的其他待执行的任务就会...

    定时的爱-完成定时任务的加载和发送

    创建一个`ScheduledThreadPoolExecutor`实例,然后使用`schedule()`或`scheduleAtFixedRate()`方法来调度任务。示例: ```java ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); ...

    SpringBoot官方支持任务调度框架,轻量级用起来也挺香!.doc

    在这个配置中,我们创建了一个名为 `myJob` 的 Job,并使用 `CronScheduleBuilder` 配置了一个每5秒执行一次的 Trigger。 总结 Spring Boot 支持多种任务调度框架,包括 JDK 内置的 Timer、...

    javaweb 定时器工程

    ScheduledThreadPoolExecutor是Java并发包`java.util.concurrent`中的一个类,它是ThreadPoolExecutor的子类,增加了对定时及周期性任务的支持。相比于Quartz,ScheduledThreadPoolExecutor更加轻量级,适用于简单或...

    java 手术任务(线程池)

    在Java编程中,线程池是一种管理线程的机制,它可以帮助我们更有效地调度和执行并发任务。线程池的概念源自于并发编程领域,通过合理地复用已创建的线程,可以避免频繁创建和销毁线程带来的开销,从而提高系统性能。...

Global site tag (gtag.js) - Google Analytics