http://2710067471.iteye.com/blog/2106223
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.Date;
public class TestScheduledThreadPoolExecutor {
public static void main(String[] args) {
ScheduledThreadPoolExecutor exec=new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable(){//每隔一段时间就触发异常
@Override
public void run() {
try
{
throw new Exception();
}
catch (Exception e)
{
System.out.println("异常");
}
}}, 1000, 5000, TimeUnit.MILLISECONDS);
exec.scheduleAtFixedRate(new Runnable(){//每隔一段时间打印系统时间,证明两者是互不影响的
@Override
public void run() {
System.out.println(new Date().getTime());
}}, 1000, 2000, TimeUnit.MILLISECONDS);
}
}
分享到:
相关推荐
在编写定时任务时,使用`ScheduledExecutorService`接口(如`ScheduledThreadPoolExecutor`)可以实现定时和周期性任务,它能保证线程池中至少有一个活动线程,适合那些要求持续运行的任务。 最后,volatile关键字...
`java.util.Timer`和`java.util.TimerTask`类可以创建定时任务,但它们并不适合多线程环境,因为一个Timer只能运行一个线程,如果任务之间存在依赖,可能会导致任务执行顺序错误。 2. **ScheduledExecutorService**...
- **提高UI响应速度**:通过将耗时操作放在后台线程执行,可以让用户界面保持响应状态。 - **利用多处理器系统**:多核处理器可以同时处理多个线程,从而充分利用硬件资源。 - **简化建模**:多线程可以更好地...
- **线程**是一种比进程更细粒度的执行单元,它允许在一个进程中并发执行多个任务。 - **多线程**能够提高程序的效率和响应速度,特别是在多核处理器环境下更为明显。 - **线程与进程的区别:** - 进程是操作...
TaskExecutor可以是简单的ThreadPoolTaskExecutor,也可以是更高级的如ScheduledThreadPoolExecutor,用于定时任务。配置示例如下: ```java @Configuration @EnableAsync public class AsyncConfig { @Bean(name...
然而,Spring Task的默认实现是单线程执行的,这意味着所有任务会按照顺序执行,这可能导致执行效率不高,尤其是在有阻塞任务时,可能会影响其他任务的执行时间。例如,一个计划在每天12点执行的任务因为阻塞而延迟...
高级实用工具类是`java.util.concurrent`的核心,包括线程安全集合(如ConcurrentHashMap、CopyOnWriteArrayList等)、线程池(ExecutorService、ThreadPoolExecutor、ScheduledThreadPoolExecutor等)、信号...
`ScheduledThreadPoolExecutor`是`ScheduledExecutorService`的一个实现,可以创建一个线程池来执行定时任务。 8. **优缺点**:`Timer`简单易用,但当多个任务相互冲突时,其调度可能会出现问题。而`...
Java的Executor框架提供了ThreadPoolExecutor、ScheduledThreadPoolExecutor等线程池实现,它们支持定时任务、限制并发数等功能。 总之,多线程编程是一门深奥且实用的技术,它涉及到并发控制、资源管理、线程同步...
同时,`ScheduledThreadPoolExecutor`还可以定时或延迟执行任务。 代码示例中,可能会包含创建`ExecutorService`、创建任务(可能是`Runnable`或`Callable`)、提交任务到线程池、等待所有任务完成(使用`shutdown...
- **ScheduledThreadPoolExecutor** 提供定时及周期性任务执行的能力,可以安排延迟执行或定期执行任务。 - **CyclicBarrier** 是同步辅助类,允许多个线程等待彼此到达一个屏障点后一起继续执行(thread-t053-jdk...
9. **ScheduledExecutorService**:提供了定时执行和周期性执行任务的能力,如`ScheduledThreadPoolExecutor`。 10. **原子类(AtomicXXX)**:如AtomicInteger、AtomicLong和AtomicReference等,它们提供了原子...
总的来说,`ScheduledThreadPoolExecutor`是Java中实现定时任务和延时加载的强大工具,具有高度的灵活性和控制力,是现代Java应用中的首选定时任务组件。合理利用它可以提升系统的自动化程度和效率。
- **ScheduledExecutorService**:允许定时或周期性执行任务,如ScheduledThreadPoolExecutor。 7. **并发设计模式** - **生产者消费者模型**:通过Buffer(队列)实现数据的生产和消费,避免了线程间的直接交互...
4. **ScheduledThreadPoolExecutor**:这个类扩展了`ThreadPoolExecutor`,增加了定时和周期性执行任务的功能。`TestScheduledThread.java`可能包含了如何创建和使用`ScheduledThreadPoolExecutor`来调度延迟或定期...
例如,研究`ScheduledThreadPoolExecutor`如何实现定时任务的调度,了解`Timer`内部的单线程模型,以及Quartz的作业和触发器是如何协同工作的。 7. **工具应用** 在实际开发中,我们常常会用到一些工具来帮助管理...
3. `CountDownLatch`:计数器门锁,初始化一个计数值,线程执行完成后调用`countDown()`方法,当计数值为0时,所有等待的线程可以继续执行。常用于多线程协作,比如主线程等待所有子线程完成后再继续。 4. `...
总的来说,Java线程池是实现并发和多线程编程的有效工具,它通过统一的线程管理策略和任务调度机制,提高了系统的并发性能和资源利用效率。开发者可以根据应用需求选择合适的线程池类型,或自定义线程池配置,以实现...
Java定时任务是软件开发中一个不可或缺的特性,它允许程序在特定时间执行预定的任务,而无需用户干预。在Java世界里,实现定时任务的方式多种多样,包括但不限于使用Java内置的`java.util.Timer`和`java.util....
此外,`ScheduledThreadPoolExecutor`则可以用于定时或周期性地执行任务。 总之,通过Java的并发库和队列数据结构,我们可以轻松实现对线程执行数量的控制,这对于高效管理和调度大量并发任务至关重要。理解和熟练...