java线程池(newScheduledThreadPool )的使用


import java.util.concurrent.*;

/**
 * java线程池的使用,周期性执行任务,类似定时任务
 */
public class ExecutorServiceTest {
	public static void main(String[] args) throws ExecutionException, InterruptedException {

		ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);
		scheduledThreadPool.schedule(new Runnable() {
		    @Override
		    public void run() {
		    	// 延迟3秒执行
		        System.out.println("延迟3秒执行,当前线程:" + Thread.currentThread().getName() + "当前任务时间:"
						+ System.currentTimeMillis());
		    }
		}, 3, TimeUnit.SECONDS);
		scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
			 @Override
				public void run() {
				 	// 延迟1秒,每隔3秒执行
					System.out.println("延迟1秒,每隔3秒执行,当前线程:" + Thread.currentThread().getName() + "当前任务时间:"
							+ System.currentTimeMillis());
				}
			}, 1, 3, TimeUnit.SECONDS);
	}
}

运行结果:

延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210491567
延迟3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210493567
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210494568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210497568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210500568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210503568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210506568
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210509569
延迟1秒,每隔3秒执行,当前线程:pool-1-thread-1当前任务时间:1538210512569
延...................

newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。

你可能感兴趣的:(开发中所遇问题及解决方案)