import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* Created by cloud.huang on 16/5/20.
*/
public class ScheduledThreadPoolCloseTest {
public static void main(String[] args) throws Exception {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(3);
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("start" + "====" + Thread.currentThread().getName());
int i = 0;
while (true) {
i++;
System.out.println(i + "====" + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
}
}
}, 1, 1, TimeUnit.SECONDS);
Thread.sleep(2000);
System.out.println("close begain");
// executor.shutdown(); // 这个是不可以的 停不下来的
executor.shutdownNow(); // 这个配合catch 中的break是可以的
}
}
使用线程池的话,只能用shutdown 或shutdownNow 关闭。shutdownNow会打断运行中的任务,当然还是要任务自己捕捉InterruptedException 自己退出
分享到:
相关推荐
Java多线程与定时器是Java编程中两个重要的概念,它们在构建高性能、高并发的应用程序中发挥着关键作用。本文将深入探讨这两个主题,并结合实际的代码示例进行讲解。 首先,我们来理解Java多线程。多线程允许一个...
Java Web定时器主要指的是在Java Web应用程序中实现定时任务的功能,这在许多业务场景中都是必要的,例如数据备份、报表生成、邮件发送等。在Java中,我们可以利用内置的`java.util.Timer`类或者Spring框架的`@...
Java定时器(Timer)是Java Swing库中的一个类,它提供了调度任务在未来某个时间执行的能力。这个类主要用于在GUI应用程序中实现定时触发某些操作,比如更新界面、执行动画或者执行周期性的后台任务。Timer类结合了...
Java定时器是编程中用于执行特定任务的自动化工具,它允许开发者在预设的时间间隔内运行某些代码。在Java世界里,我们有多种实现定时任务的方式,包括Java内置的`java.util.Timer`类和`java.util.concurrent....
Java定时器(java.util.Timer)是Java标准库中用于调度任务执行的重要工具,它允许我们按照预设的时间间隔执行特定的任务。在Java程序设计中,定时器常常用于实现周期性的任务,比如定时备份数据、定时检查系统状态...
4. 如果不再需要定时器,记得调用`Timer`的`cancel()`方法来取消所有任务并释放资源,否则`Timer`线程会一直运行,即使所有任务都已经完成。 通过阅读`Timer`和`TimerTask`的源码,我们可以了解到其实`Timer`内部...
`Timer`类是Java标准库中的一个基础定时器,可以用来调度周期性的任务。创建一个`Timer`实例后,我们可以通过`schedule(TimerTask task, long delay)`或`scheduleAtFixedRate(TimerTask task, long initialDelay, ...
在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,极大地提高了效率。本实例将探讨如何利用Java实现一个具有进度条显示功能的多线程应用。进度条通常用于可视化地表示某个任务的完成程度,这对于长...
在Java编程中,定时任务是十分常见的需求,例如定期访问某个程序或数据库进行查询。Java提供了多种实现定时任务的方式,其中最常用的包括`java.util.Timer`类和`java.util.concurrent.ScheduledExecutorService`接口...
在Java编程语言中,线程是程序执行的最小单元,它可以并发地与程序中的其他线程一起运行。Java线程模块对于理解和实现多任务并行处理至关重要,尤其是在开发高效的、响应迅速的应用程序时。本节将深入探讨Java线程中...
JAVA精确定时器,利用系统时间,使长期工作的误差稳定。 功能: ·可定时启动任务或直接启动任务 ·重复启动任务(时间间隔可在任务线程中改变,范围大于100ms,否则精度降低) 引用列表: ·import psn.razerpen....
最后,`Test`类的`main`方法展示了如何使用上述组件来创建和启动一个定时器。创建一个`NewTask`实例并将其传递给`Timer`构造函数,指定任务执行的间隔时间为1000毫秒(即1秒)。运行结果将每隔一秒打印一次系统当前...
在Java中,`Timer`类是`java.util`包的一部分,用于调度线程执行任务。它主要用于处理那些需要定期执行的任务,比如更新用户界面、发送电子邮件通知等场景。通过`Timer`类,可以方便地创建并管理这些定时任务。 ###...
Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它提供了一种在后台线程中定期执行任务的能力。这个功能对于需要在特定时间间隔执行操作的应用程序非常有用,比如心跳检测、数据刷新或者清理任务...
`Timer` 类是Java标准库中较早提供的定时器,主要用于单线程的定时任务调度。它包含两个核心方法: - `schedule(TimerTask task, long delay)`: 在延迟`delay`毫秒后执行`TimerTask`。 - `schedule(TimerTask task,...
Java定时器(Timer)是Java语言中用于调度任务的一个重要工具,它可以帮助我们在特定时间执行一次或重复执行某个任务。这个“java定时器.rar”压缩包可能包含了关于如何使用Java定时器的相关示例代码和教程。 Java...
1. **Timer类**:它是Java中的定时器类,用于安排和管理定时任务。`Timer`对象可以调度单次执行的任务,也可以调度周期性重复执行的任务。 2. **TimerTask类**:这是一个抽象类,表示一个可被`Timer`调度的任务。...
Java定时器Timer是Java编程语言中用于计划执行任务的一种工具类。Timer类主要提供了定时任务的安排执行,对于需要在指定时间后、或者以固定周期重复执行任务的场景非常有用。本文档中介绍的Timer类的实现以及如何...
在JAVA中,创建和启动线程主要有两种方法: 1. **通过继承Thread类**:创建一个自定义类,该类继承自`Thread`类,并重写`run()`方法。创建该类的对象后,调用`start()`方法即可启动线程。需要注意的是,调用`start...
Java定时器是Java编程语言中用于执行预定任务的重要工具,主要通过`java.util.Timer`类和`java.util.TimerTask`类来实现。这个简单的定时器功能可以帮助开发者在特定的时间间隔或者在特定时间点执行特定的任务,这...