`
bogongjie
  • 浏览: 235408 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ScheduledExecutorService定时周期执行指定的任务

 
阅读更多

接口scheduleAtFixedRate原型定义及参数说明:

 public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
				long initialDelay,
				long period,
				TimeUnit unit);

 command:执行线程

initialDelay:初始化延时
period:两次开始执行最小间隔时间
unit:计时单位

接口scheduleWithFixedDelay原型定义及参数说明:

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
				long initialDelay,
				long delay,
				TimeUnit unit);

 

代码示例:

 

ScheduledExecutorService mExecutorService;
	ScheduledFuture mFuture1, mFuture2;

	private void executScheduledExecutorService() {
		mExecutorService = Executors.newScheduledThreadPool(1);
		mFuture1 = mExecutorService.scheduleAtFixedRate(new EchoServer(), 1000, 1000, TimeUnit.MILLISECONDS);

		mExecutorService.schedule(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				Log.i("W", "shut down.");
				mExecutorService.shutdownNow();
			}
		}, 40, TimeUnit.SECONDS);
	}

	class EchoServer implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			a++;
			Log.i("W", "a = " + a);
			if (a == 10) {
				mFuture1.cancel(false);
			}
			if (a == 2) {
				mFuture2 = mExecutorService.scheduleAtFixedRate(new EchorServer(), 1000, 2000, TimeUnit.MILLISECONDS);
			}
		}
	}

	class EchorServer implements Runnable {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			b++;
			Log.i("W", "b = " + b);
			if (b == 15) {
				mFuture2.cancel(false);
			}
		}
	}

 

@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		if (mExecutorService != null) {
			mExecutorService.shutdownNow();
		}
	}

 

 

分享到:
评论

相关推荐

    ScheduledExecutorService任务定时代码示例

    fixedRate 方法用于按指定频率周期执行某个任务。在上面的示例代码中,我们使用了 scheduleAtFixedRate 方法来执行 EchoServer 任务。这个方法的参数包括初始延迟时间、执行周期和时间单位。在这个示例中,我们设置...

    Java定时执行某个任务

    总结起来,Java提供了`Timer`和`ScheduledExecutorService`两种方式来实现定时执行任务。`Timer`适合简单的定时任务,而`ScheduledExecutorService`更适合复杂的需求,如多线程环境和高并发场景。选择哪种方式取决于...

    JAVA项目服务器启动时自启动指定的Servlet,并定时执行任务

    在这个例子中,我们在`init()`方法中创建了一个`ScheduledExecutorService`实例,并设置了一个定时任务,它将在服务器启动后每小时执行一次。在`destroy()`方法中,我们关闭了`executor`以释放资源。 总结,通过在`...

    TimerTask执行每日定时任务

    在更复杂的场景下,例如需要更精确的控制或者更高的并发性能,可以考虑使用`ScheduledExecutorService`,它是Java并发框架`java.util.concurrent`的一部分,提供了更强大的定时任务调度功能。 总之,`TimerTask`和`...

    ScheduledExecutorService 计时器任务处理

    ScheduledExecutorService是Java并发编程中一个非常重要的工具类,它属于ExecutorService接口的一个实现,主要用于执行定时或周期性的任务。这个服务提供了强大的定时任务管理能力,可以用来安排在未来某一时刻或者...

    计划任务 定时执行

    在IT领域,计划任务和定时执行是至关重要的概念,它们被广泛应用于自动化流程、数据同步、备份策略以及各种定期维护任务。在这个例子中,我们关注的是如何设置计划任务来定时执行代码,比如定时上传文件或其他操作。...

    Spring定时任务实现(非Web项目)

    3. **ThreadPoolTaskScheduler**:这是Spring提供的定时任务调度器,它可以基于Java的`ScheduledExecutorService`来执行周期性的任务。 4. **@Scheduled**:这是一个注解,用于标记需要定时执行的方法。 在非Web...

    Java定时任务及其在工作流系统中的应用.pdf

    在创建任务时,需要指定任务的执行时间、执行间隔等参数。 * 任务的执行:在Java中,定时任务的执行是通过线程池实现的。线程池是指一个线程的集合,该集合可以并发执行多个任务。在执行定时任务时,Java会从线程池...

    java 定时任务及jar包

    Java定时任务是Java编程中一个重要的特性,它允许开发者安排任务在特定的时间点或周期性地执行。在Java中,我们可以使用内置的`java.util.Timer`类和`java.util.concurrent.ScheduledExecutorService`来实现定时任务...

    java quartz 定时任务

    - 在Quartz中,可以通过CronTrigger来指定任务按照Cron表达式执行。开发者可以自定义Cron表达式,使得任务能够在指定的时间(如每小时的第5分钟,或者每周一的上午9点)触发执行。 5. **Quartz API使用**: - ...

    Timer定时任务

    如果希望任务周期性执行,可以使用`scheduleAtFixedRate`方法,它会在第一次执行后按照固定的频率重复: ```java timer.scheduleAtFixedRate(new MyTask(), initialDelay, period); ``` 这里,`initialDelay`是...

    java定时执行代码.

    Java定时执行代码是Java开发中常见的一种需求,用于在特定时间点或按照预设周期执行某段任务。Java提供了多种实现定时任务的机制,这里主要介绍两种:Java.util.Timer类和java.util.concurrent....

    Android定时执行任务总结demo

    - 对于短周期或频繁的任务,推荐使用`Handler`或`ScheduledExecutorService`,它们在应用运行时有效,但设备休眠时不会执行。 - 为了提高用户体验和避免不必要的唤醒,确保只在必要时启动定时任务,并在任务完成后...

    JAVA定时任务

    定时任务的性能优化主要包括合理配置线程池大小,避免任务之间的资源争抢,以及选择合适的调度策略,比如根据任务的执行时间和频率选择`ScheduledExecutorService`的调度方法。 9. **异常处理** 为了保证系统的...

    JAVA定时任务调度

    Java定时任务调度是Java开发中一个非常重要的技术领域,它允许开发者在特定的时间点或按照预定义的周期执行任务,从而实现自动化的工作流程。在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util...

    定时任务管理

    定时任务,也称为计划任务,是指在特定时间点或按照预定周期自动执行的程序或脚本。根据触发机制的不同,定时任务通常分为以下几种类型: 1. 定时启动:在设定的时刻启动某个程序或服务。 2. 周期性执行:每隔一段...

    java定时任务

    这是一种字符串格式,允许精确地指定任务执行的时间,如每小时的第15分钟执行等。 7. **线程安全与并发** 定时任务往往涉及到多线程和并发问题,因此在编写代码时需要考虑线程安全,确保任务的正确性和一致性。 8...

    java 定时任务管理框架

    4. **注册任务**:通过API将任务注册到调度中心,指定任务的执行周期、执行条件等参数。 5. **启动调度**:在项目启动时启动调度中心,开始执行任务。 6. **监控与管理**:通过提供的管理界面,查看任务状态,进行...

    android 延时或重复执行任务

    它支持精确到毫秒级的定时,并且有`ELAPSED_REALTIME`、`RTC`、`RTC_WAKEUP`等多种触发类型,其中`RTC_WAKEUP`会在指定时间唤醒设备执行任务。然而,`AlarmManager`的使用需要考虑电池效率,过度使用可能会导致电量...

Global site tag (gtag.js) - Google Analytics