java线程池定时任务

import java.util.Timer;  
import java.util.TimerTask;  
  
/** 
 *  
 * 于第一种方式相比,优势 1>当启动和去取消任务时可以控制 2>第一次执行任务时可以指定你想要的delay时间 
 *  
 * 在实现时,Timer类可以调度任务,TimerTask则是通过在run()方法里实现具体任务。 Timer实例可以调度多任务,它是线程安全的。 
 * 当Timer的构造器被调用时,它创建了一个线程,这个线程可以用来调度任务。 下面是代码: 
 *  
 * @author GT 
 *  
 */  
public class Task2 {  
    public static void main(String[] args) {  
        TimerTask task = new TimerTask() {  
            @Override  
            public void run() {  
                // task to run goes here  
                System.out.println("Hello !!!");  
            }  
        };  
        Timer timer = new Timer();  
        long delay = 0;  
        long intevalPeriod = 1 * 1000;  
        // schedules the task to be run in an interval  
        timer.scheduleAtFixedRate(task, delay, intevalPeriod);  
    } // end of main  
} 

   

package javapro;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Task3 {  
	public static int sum=0;
    public static void main(String[] args) {
        ScheduledExecutorService service = Executors  
                .newSingleThreadScheduledExecutor();  
        Runnable runnable = new Runnable() {  
            public void run() {  
                // task to run goes here 
            	if(sum>1){
            		service.shutdown();//停止任务
            	}
            	sum++;
                System.out.println("Hello !!");  
            }  
        };  
    
        // 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间  
        service.scheduleAtFixedRate(runnable, 3, 1, TimeUnit.SECONDS);  
    }  
}

  

猜你喜欢

转载自h496950806.iteye.com/blog/2359187