スレッド学習ノート【2】---Timer(タイマー)
12888 ワード
はじめに
実行結果
21222324252627282930 bombing 313233連続実行
実行結果:
50515253545556575859 bombing 012 bombing 345 bombing 67向上
匿名の内部クラスは一時的です
整数は奇数と偶数に分かれているので、パリティ操作で完了できます
実行結果:
1314bombing15161718bombing1920bombing21222324bombing25
public class Time01 {
public static void main(String[] args) {
// Timer timer01=new Timer();
// timer01.schedule(new TimerTask(){
//
// @Override
// public void run() {
//
// System.out.println("bombing");
// }}, 1000);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("bombing");
}
}, 10000);
while (true) {
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
実行結果
21222324252627282930 bombing 313233連続実行
public class Time02 {
public static void main(String[] args) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("bombing");
}
}, 10000,3000); // 3
while (true) {
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
実行結果:
50515253545556575859 bombing 012 bombing 345 bombing 67向上
匿名の内部クラスは一時的です
整数は奇数と偶数に分かれているので、パリティ操作で完了できます
/**
* 2 , 4 ,
*
*/
public class Time03 {
static int i = 0; //
public static void main(String[] args) {
class MyTimerTask extends TimerTask {
//
public void run() {
i=(i+1)%2;
System.out.println("bombing");
new Timer().schedule(new MyTimerTask(), 2000+2000*i);
}
}
new Timer().schedule(new MyTimerTask(), 2000);
while (true) {
try {
System.out.println(new Date().getSeconds());
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
実行結果:
1314bombing15161718bombing1920bombing21222324bombing25
/**
*
* Quartz
*/
public class Timer04 {
public static void main(String[] args) {
String str = "2011-08-28 08:39:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timer timer = new Timer();
try {
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("timer");
}
}, sdf.parse(str), 24 * 60 * 1000);
} catch (ParseException e) {
e.printStackTrace();
}
while (true) {
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
* 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 timer 0 1 2 3 4 5
*/
}