定時器Timer&ScheduledThreadPoolExecutor

定時器Timer&ScheduledThreadPoolExecutor

/**
 * @ClassName: TimerTest
 * @author: daniel.zhao
 * @date: 2018年10月15日 下午3:04:26
 */
public class TimerTest {

	private static final Logger logger = Logger.getLogger(TimerTest.class.getSimpleName());

	@Test
	public void test() throws IOException {
		Timer timer = new Timer(true);
		timer.schedule(new TimerTask() {

			@Override
			public void run() {
				logger.info("time: " + System.currentTimeMillis());
			}
		}, 2000, 4000); // 2000表示第一次執行任務延遲時間,40表示之後每隔多長時間執行一次run裏面的任務
		System.in.read();
	}
}

 

/**
 * @ClassName: ScheduledThreadPoolExecutorTest
 * @author: daniel.zhao
 * @date: 2018年10月15日 下午3:15:01
 */
public class ScheduledThreadPoolExecutorTest {

	private static final Logger logger = Logger.getLogger(ScheduledThreadPoolExecutorTest.class.getSimpleName());

	@Test
	public void test() throws IOException {
		ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2);
		executor.scheduleAtFixedRate(new Runnable() {

			@Override
			public void run() {
				logger.info("time: " + System.currentTimeMillis());
			}
		}, 2000, 40, TimeUnit.MILLISECONDS); // 2000表示首次執行任務的延遲時間,40表示每次執行任務的間隔時間,TimeUnit.MILLISECONDS執行的時間間隔數值單位
		System.in.read();
	}
}
相關文章
相關標籤/搜索