zoukankan      html  css  js  c++  java
  • 【Concurrency-ScheduledExecutorService】


    简介

    线程池执行者在ThreadPoolExecutor的基础上给我们提供了延时(delay)执行和周期执行的功能。性能会优于Timer包。

    继承结构

    结构

    参考:

    ThreadPoolExecutor
    Executor
    ExecutorService
    ScheduledExecutorService
    AbstractExecutorService

    DEMO

    package calvin;
    
    import java.util.concurrent.ScheduledThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    import java.util.concurrent.atomic.AtomicInteger;
    
    
    public class TestScheduledThreadPoolExecutor {
    	public static ScheduledThreadPoolExecutor executor = null;
    	
    	public static void main(String[] args){
    		System.out.println("test ScheduledThreadPoolExecutor");
    		executor = new ScheduledThreadPoolExecutor(5);
    		myTask task = new myTask();
    		// 2秒后执行,执行后就停止
    		executor.schedule(task, 2l, TimeUnit.SECONDS);
    		// 5秒后执行,执行完后每10秒再执行不会自动停止
    		executor.scheduleWithFixedDelay(task, 5l, 10, TimeUnit.SECONDS);
    		
    	}
    	
    	public static class myTask implements Runnable{
    		public AtomicInteger index = new AtomicInteger();
    		@Override
    		public void run(){
    			System.out.println(System.currentTimeMillis() + "start working  thread = "+Thread.currentThread().getName() + " index =" + index.incrementAndGet());
    		}
    		
    	}
    }
    
    

    小结

    1. 对于Executor对象来说他的task执行顺序是根据FIFO原则来运行的
    2. 给我们提供了定时执行任务的功能
  • 相关阅读:
    [高级软件工程教学]总成绩排行榜(12.20更新)
    [高级软件工程教学]团队Alpha阶段成绩汇总
    ab & webbench
    httpClient 3
    xpath 定位补充
    命令补充
    feed4testng
    自动化测试架构整理
    识别元素
    appium小例子
  • 原文地址:https://www.cnblogs.com/calvin-207/p/6127405.html
Copyright © 2011-2022 走看看