`

schedulePool.scheduleAtFixedRate 是个误解

阅读更多
我们经常使用的java定时器单线程执行,例如:

一个任务每个一秒中执行一次,加入在50秒的任务没有执行完毕,后续任务无法执行

防止这种策略的是:

在内部在开一个线程,做你想做的事:

public class SchedulePool {

private static ScheduledExecutorService schedulePool = Executors.newScheduledThreadPool(8);

/**

* @param args

*/

static  int i =0;

public static void main(String[] args) {

schedulePool.scheduleAtFixedRate(new Thread() {

@Override

public void run() {

try {

System.out.println("运行了一次。。。。。。。"+(i++));

int i=0;

new Thread(new Runnable(){ // 内部在开一个线程,就不会因为上一次任务没有结束人等待了,才可以做到并行执行。

public void run(){

while(true){

Thread.yield();



}

}

}).start();

System.out.println("over------------------>>>>>>>>>>>>>>>>>>>>>.");

/*while(true){

Thread.yield();



}*/

/*while(i<=0){

i++;

Thread.sleep(1000*120);

}*/

} catch (Exception e) {

e.printStackTrace();

}

}

}, 1, 2, TimeUnit.SECONDS);

}


}
分享到:
评论

相关推荐

    银行业务调度系统

    Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() { public void run() { Integer number = NumberMachine.getInstance().getCommonManager().generateNewManager(); System.out....

    java中timer的schedule和scheduleAtFixedRate方法区别详解

    Java 中的 Timer 类提供了两个常用的方法:schedule 和 scheduleAtFixedRate,用于安排和执行定时任务。虽然这两个方法看起来很相似,但是它们之间存在着重要的区别。本文将详细介绍这两个方法的区别,帮助读者更好...

    java中的定时器,定时访问某程序等

    使用`Timer`创建一个定时任务非常简单,主要通过`schedule`和`scheduleAtFixedRate`两个方法来实现。 1. `schedule(TimerTask task, long delay)`:此方法会在延迟指定的毫秒数后执行一次任务。 2. `...

    Java Timer:schedule和scheduleAtFixedRate

    本篇文章将深入探讨 `Timer` 类的两个核心方法:`schedule` 和 `scheduleAtFixedRate`,以及它们在实际开发中的应用。 首先,`schedule` 方法有两种重载形式,一种是安排一个 `TimerTask` 在特定的延迟后执行,另一...

    Java定时任务schedule和scheduleAtFixedRate的异同

    该接口提供了两个方法,`schedule`和`scheduleAtFixedRate`,它们都能用于安排任务的执行,但具体的行为有所不同。本文将深入探讨这两个方法的异同。 1. **schedule方法** `schedule`方法用于一次性延迟执行任务,...

    Java调度原理及使用.docx

    `Timer`的主要工作原理是维护一个任务队列(TaskList)和一个后台线程(TaskThread)。任务队列按任务的首次执行时间排序,TaskThread会持续检查并执行最早应执行的任务。以下是一个简单的`Timer`使用示例: ```...

    Timer累计计时器,利用系统时间计时 含代码注释

    在编程领域,定时器(Timer)是一个非常常见且重要的组件,尤其在实时系统、游戏开发、数据采集等场景中有着广泛的应用。Timer可以用来执行周期性的任务,或者在特定的时间间隔后触发某个事件。本教程将详细介绍如何...

    java每天实现定点执行任务

    创建一个`ScheduledExecutorService`,然后使用`scheduleAtFixedRate()`或`scheduleWithFixedDelay()`方法: ```java ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); Runnable ...

    java的Time、Scheduler定时器

    5. `Timer.scheduleAtFixedRate(TimerTask task, Date firstTime, long period)`: 在指定的日期开始,以固定的速率(即两个执行之间的精确时间间隔)重复执行任务。 6. `Timer.scheduleAtFixedRate(TimerTask task, ...

    java定时器大全

    创建一个`Timer`实例后,可以使用`schedule()`或`scheduleAtFixedRate()`方法安排任务的执行。 1. **创建定时器和任务** 创建`TimerTask`子类,重写`run()`方法,定义需要执行的任务。然后,创建`Timer`对象,并...

    Java线程模块Java线程之秒表

    在这里,`Executors.newSingleThreadScheduledExecutor()`创建一个单线程的调度器,`scheduleAtFixedRate()`方法与之前提到的`Timer`类似,可以定期执行任务。 总的来说,Java提供了多种方式来实现秒表功能,可以...

    java.util.timer实现的简单定时任务

    当我们创建一个Timer对象时,实际上启动了一个后台线程,这个线程会不断地检查是否有任务需要执行。 `TimerTask`是`Timer`用来执行的任务接口,你需要创建它的子类并重写`run`方法来定义具体的任务内容。以下是一个...

    Java 中定时器

    Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它提供了一种在后台线程中定期执行任务的能力。这个功能对于需要在特定时间间隔执行操作的应用程序非常有用,比如心跳检测、数据刷新或者清理任务...

    Java实现时间监听

    // 第二个参数为首次执行延迟,第三个参数为周期间隔 ``` 2. **Java 8的时间监听** Java 8引入了`java.time`包,提供了更加丰富的日期和时间API。你可以使用`ScheduledExecutorService`配合`Runnable`或`...

    Android中使用的定时针(刷新页面请求服务器)详解

    timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { Message message=new Message(); message.what=1; handler.sendMessage(message); } }, 1000,5000); 2.在线程中创建Handle

    java ftp上传和下载

    而在被动模式中,服务器开启一个随机端口并告知客户端,客户端再连接到这个端口进行数据传输。 Java FTP操作: 在Java中,我们可以使用`java.net.Socket`类和`java.io`流来实现FTP功能,但更常见的是使用Apache ...

    Java关于时间调度的几种实现方(Timer Quartz Spring)

    `java.util.Timer` 类提供了一个调度任务的方法,而`TimerTask` 是一个抽象类,用于定义要在特定时间执行的任务。以下是如何使用它们的基本示例: ```java import java.util.Timer; import java.util.TimerTask; ...

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

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

    ViewPager实现图片自动轮播和无限循环(完美流畅)

    在Android开发中,ViewPager是一个非常常用的组件,常用于实现页面滑动效果,比如在应用启动页、广告轮播图等场景。本知识点将详细介绍如何利用ViewPager实现图片自动轮播和无限循环的效果,使得用户体验更加流畅。 ...

    Android ViewPager等自制图片轮播器

    本篇将详细讲解如何使用Android的ViewPager组件来构建一个自定义的图片轮播器。 **一、ViewPager组件** ViewPager是Android SDK中的一个强大的视图滑动容器,它允许用户左右滑动查看多个页面。在图片轮播器的实现...

Global site tag (gtag.js) - Google Analytics