1. 多线程编程
package org.gocom.abframe.auth;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AbTest extends Thread {
private static Date date = new Date();
private String date1;
private static SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
public AbTest(String date){
this.date1 = date;
}
public void run(){
while(true){
if(sdf.format(AbTest.date).equals(date1)){
System.out.println("-----执行定时任务------");
Date begin = new Date();
PrintWriter pw;
try {
pw = new PrintWriter("d://time.log");
for(int i=0;i<10000;i++){
pw.println("任务:"+i);
}
pw.close();
pw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Date end = new Date();
System.out.println("任务执行时间:"+(float)(end.getTime()-begin.getTime())/1000+"秒");
System.out.println("------定时任务执行完成-------");
}else{
System.out.println("等待定时任务..."+sdf.format(AbTest.date)+" "+date1);
}
try {
sleep(1000);
AbTest.date = new Date();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
for(int i=0;i<3;i++){
AbTest ab = new AbTest("16:4"+i+":00");
ab.start();
System.out.println("加载第"+i+"个线程");
}
}
}
2. Timer用法
package com.sdbank;
import java.util.Timer;
import java.util.TimerTask;
public class Test {
public static void print(){
System.out.println(1);
}
public static void main(String[] args) {
final Timer t = new Timer();
t.schedule(new TimerTask() {
private int count = 5;
@Override
public void run() {
if(count==0){
print();
t.cancel();
}else{
System.out.println(count);
count--;
}
}
}, 1000,1000);
}
}