java執行緒、定時例子
阿新 • • 發佈:2018-11-05
-- java的執行緒: package com.test; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class ThreadTest { public static void main(String[] args) { printHelleo(); timerTest(); task3(); } public static void printHelleo(){ final long timeInterval = 1000; new Thread(){ public void run() { System.out.println("--->第一種方法跑了,當前時間是:"+new Date()); // System.out.println("當前執行緒id是:"+this.getId()); try { Thread.sleep(timeInterval); printHelleo(); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); } public static void printHelleo2(){ final long timeInterval = 10000; new Thread(){ public void run() { while (true){ System.out.println("---->Hello !!"+new Date()); System.out.println("---》10s到了,開始更新資料"); try { Thread.sleep(timeInterval); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } /** * 用TimerTask定時 * @Title: timerTest * @Description: (這裡用一句話描述這個方法的作用)???? * @return void??? 返回型別? * @date 2017年8月24日 下午3:32:52 * @throws? */ public static void timerTest(){ TimerTask task = new TimerTask() { public void run() { // task to run goes here System.out.println("---->第二種方法task啟動,當前時間是:"+new Date()); } }; Timer timer = new Timer(); long delay = 0; long intevalPeriod = 1 * 1000; timer.scheduleAtFixedRate(task, delay, intevalPeriod); } public static void task3(){ System.out.println("當前時間是:"+new Date()); Runnable runnable = new Runnable() { public void run() { // task to run goes here System.out.println("-----》第三種方法跑了-----"); System.out.println("當前時間是:"+new Date()); } }; ScheduledExecutorService service = Executors .newSingleThreadScheduledExecutor(); // 第二個引數為首次執行的延時時間,第三個引數為定時執行的間隔時間 //command--這是被排程的任務。 //initialDelay--這是以毫秒為單位的延遲之前的任務執行。 //period--這是在連續執行任務之間的毫秒的時間。 service.scheduleAtFixedRate(runnable, 1, 1, TimeUnit.SECONDS); } }