Skip to content

Commit a4e02b3

Browse files
committed
java-multithread timer包更新至example2
1 parent 4b6aac1 commit a4e02b3

File tree

13 files changed

+392
-0
lines changed

13 files changed

+392
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Date;
4+
import java.util.TimerTask;
5+
6+
/**
7+
* Created by Brian on 2016/4/15.
8+
*/
9+
public class MyTask extends TimerTask{
10+
@Override
11+
public void run() {
12+
System.out.println("任务执行了,时间为:"+new Date());
13+
}
14+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
7+
/**
8+
* Created by Brian on 2016/4/15.
9+
*/
10+
11+
/**
12+
* P242
13+
* schedule(TimerTask task, Date time)测试,在未来执行的效果
14+
* Timer的构造方法会新启一个线程,且非守护线程
15+
*/
16+
public class Run1_timer1 {
17+
public static void main(String[] args) {
18+
System.out.println("当前时间为:"+new Date());
19+
Calendar calendar = Calendar.getInstance();
20+
calendar.add(Calendar.SECOND,5);
21+
Date runDate = calendar.getTime();
22+
23+
MyTask task = new MyTask();
24+
Timer timer = new Timer();
25+
timer.schedule(task,runDate);
26+
}
27+
}
28+
29+
/*
30+
输出:
31+
当前时间为:Fri Apr 15 22:10:14 CST 2016
32+
任务执行了,时间为:Fri Apr 15 22:10:19 CST 2016
33+
*/
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
7+
/**
8+
* Created by Brian on 2016/4/15.
9+
*/
10+
11+
/**
12+
* P243
13+
* schedule(TimerTask task, Date time)测试,在未来执行的效果
14+
* Timer的构造方法会新启一个守护线程
15+
* 迅速结束,task任务未被执行
16+
*/
17+
public class Run1_timer2 {
18+
public static void main(String[] args) {
19+
System.out.println("当前时间为:"+new Date());
20+
Calendar calendar = Calendar.getInstance();
21+
calendar.add(Calendar.SECOND,5);
22+
Date runDate = calendar.getTime();
23+
24+
MyTask task = new MyTask();
25+
Timer timer = new Timer(true);//守护线程
26+
timer.schedule(task,runDate);
27+
}
28+
}
29+
30+
/*
31+
输出:
32+
当前时间为:Fri Apr 15 22:12:28 CST 2016
33+
*/
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
7+
/**
8+
* Created by Brian on 2016/4/15.
9+
*/
10+
11+
/**
12+
* P244
13+
* schedule(TimerTask task, Date time)测试,提前运行的效果
14+
*/
15+
public class Run1_timer3 {
16+
public static void main(String[] args) {
17+
System.out.println("当前时间为:"+new Date());
18+
Calendar calendar = Calendar.getInstance();
19+
calendar.set(Calendar.SECOND,calendar.get(Calendar.SECOND)-10);
20+
Date runDate = calendar.getTime();
21+
System.out.println("计划时间为:"+ runDate);
22+
MyTask task = new MyTask();
23+
Timer timer = new Timer();
24+
timer.schedule(task,runDate);
25+
}
26+
}
27+
28+
/*
29+
输出:
30+
当前时间为:Fri Apr 15 22:15:40 CST 2016
31+
计划时间为:Fri Apr 15 22:15:30 CST 2016
32+
任务执行了,时间为:Fri Apr 15 22:15:40 CST 2016
33+
*/
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
7+
/**
8+
* Created by Brian on 2016/4/15.
9+
*/
10+
11+
/**
12+
* P245
13+
* schedule(TimerTask task, Date time)测试,多个TimerTask任务及延时
14+
*/
15+
public class Run1_timer4 {
16+
public static void main(String[] args) {
17+
System.out.println("当前时间为:"+new Date());
18+
Calendar calendar = Calendar.getInstance();
19+
calendar.add(Calendar.SECOND,5);
20+
Date runDate = calendar.getTime();
21+
System.out.println("计划时间为:"+ runDate);
22+
23+
Calendar calendar2 = Calendar.getInstance();
24+
calendar.add(Calendar.SECOND,10);
25+
Date runDate2 = calendar2.getTime();
26+
System.out.println("计划时间为:"+ runDate2);
27+
28+
MyTask task1 = new MyTask();
29+
MyTask task2 = new MyTask();
30+
Timer timer = new Timer();
31+
timer.schedule(task1,runDate);
32+
timer.schedule(task2,runDate);
33+
}
34+
}
35+
36+
/*
37+
输出:
38+
当前时间为:Fri Apr 15 22:24:08 CST 2016
39+
计划时间为:Fri Apr 15 22:24:13 CST 2016
40+
计划时间为:Fri Apr 15 22:24:08 CST 2016
41+
任务执行了,时间为:Fri Apr 15 22:24:13 CST 2016
42+
任务执行了,时间为:Fri Apr 15 22:24:13 CST 2016
43+
*/
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
7+
/**
8+
* Created by Brian on 2016/4/15.
9+
*/
10+
11+
/**
12+
* P246
13+
* schedule(TimerTask task, Date time)测试,多个TimerTask任务及延时
14+
* 队列的方式,一个一个被顺序执行,前面一个耗时长则后面的任务被延后
15+
*/
16+
public class Run1_timer5 {
17+
public static void main(String[] args) {
18+
System.out.println("当前时间为:"+new Date());
19+
Calendar calendar = Calendar.getInstance();
20+
Date runDate = calendar.getTime();
21+
System.out.println("A计划时间为:"+ runDate);
22+
23+
Calendar calendar2 = Calendar.getInstance();
24+
calendar2.add(Calendar.SECOND,5);
25+
Date runDate2 = calendar2.getTime();
26+
System.out.println("B计划时间为:"+ runDate2);
27+
28+
TaskA task1 = new TaskA();
29+
TaskB task2 = new TaskB();
30+
Timer timer = new Timer();
31+
timer.schedule(task1,runDate);
32+
timer.schedule(task2,runDate);
33+
}
34+
}
35+
36+
/*
37+
输出:
38+
当前时间为:Fri Apr 15 22:39:30 CST 2016
39+
A计划时间为:Fri Apr 15 22:39:30 CST 2016
40+
B计划时间为:Fri Apr 15 22:39:35 CST 2016
41+
A begin timer=Fri Apr 15 22:39:30 CST 2016
42+
A end timer=Fri Apr 15 22:39:40 CST 2016
43+
B begin timer=Fri Apr 15 22:39:40 CST 2016
44+
B end timer=Fri Apr 15 22:39:40 CST 2016
45+
*/
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Date;
4+
import java.util.TimerTask;
5+
6+
/**
7+
* Created by Brian on 2016/4/15.
8+
*/
9+
public class TaskA extends TimerTask{
10+
@Override
11+
public void run() {
12+
try {
13+
System.out.println("A begin timer="+new Date());
14+
Thread.sleep(10000);
15+
System.out.println("A end timer="+new Date());
16+
} catch (InterruptedException e) {
17+
e.printStackTrace();
18+
}
19+
}
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.brianway.learning.java.multithread.timer.example1;
2+
3+
import java.util.Date;
4+
import java.util.TimerTask;
5+
6+
/**
7+
* Created by Brian on 2016/4/15.
8+
*/
9+
public class TaskB extends TimerTask{
10+
@Override
11+
public void run() {
12+
System.out.println("B begin timer="+new Date());
13+
System.out.println("B end timer="+new Date());
14+
}
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.brianway.learning.java.multithread.timer.example2;
2+
3+
import java.util.Date;
4+
import java.util.TimerTask;
5+
6+
/**
7+
* Created by Brian on 2016/4/15.
8+
*/
9+
public class MyTask extends TimerTask{
10+
@Override
11+
public void run() {
12+
System.out.println("任务执行了,时间为:"+new Date());
13+
}
14+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.brianway.learning.java.multithread.timer.example2;
2+
3+
import com.brianway.learning.java.multithread.timer.example1.TaskA;
4+
import com.brianway.learning.java.multithread.timer.example1.TaskB;
5+
6+
import java.util.Calendar;
7+
import java.util.Date;
8+
import java.util.Timer;
9+
10+
/**
11+
* Created by Brian on 2016/4/15.
12+
*/
13+
14+
/**
15+
* P247
16+
* schedule(TimerTask task, long delay, long period) 测试,在未来执行的效果
17+
*/
18+
public class Run2_period1 {
19+
public static void main(String[] args) {
20+
System.out.println("当前时间为:"+new Date());
21+
Calendar calendar = Calendar.getInstance();
22+
calendar.add(Calendar.SECOND,10);
23+
Date runDate = calendar.getTime();
24+
System.out.println("计划时间为:"+ runDate);
25+
26+
MyTask task = new MyTask();
27+
Timer timer = new Timer();
28+
timer.schedule(task,runDate,4000);
29+
}
30+
}
31+
32+
/*
33+
输出:
34+
当前时间为:Fri Apr 15 22:40:46 CST 2016
35+
计划时间为:Fri Apr 15 22:40:56 CST 2016
36+
任务执行了,时间为:Fri Apr 15 22:40:56 CST 2016
37+
任务执行了,时间为:Fri Apr 15 22:41:00 CST 2016
38+
任务执行了,时间为:Fri Apr 15 22:41:04 CST 2016
39+
40+
(一直执行,后面省略)
41+
*/

0 commit comments

Comments
 (0)