-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathThreadRun.java
76 lines (61 loc) · 1.38 KB
/
ThreadRun.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**
* 방향성
*
* Task1, 2(sub thread), 3(main thread) 가 parrelel 하게 run 됨
* shceduling 되어서 번갈아가면서 실행됨
* Thread 만드는 방법: extends Thread / new Thread()
*
* Thread 라이프사이클
*
* New
* Runnable
* Running
* Blocked / Waiting
* Terminated / Dead
*
* 추가 Method
*
* setPriority() / 말 그대로
* join() / 해당 thread 끝날 때까지 기다림
*
* */
class Task1 extends Thread {
public void run() {
System.out.println("Task1 start");
for (int i = 101;i < 199;i++) {
System.out.print(i + " ");
}
System.out.println("Task1 end");
}
}
class Task2 implements Runnable {
@Override
public void run() {
System.out.println("Task2 start");
for (int i = 201;i < 299;i++) {
System.out.print(i + " ");
}
System.out.println("Task2 end");
}
}
public class ThreadRun {
public static void main(String[] args) {
// Task1
System.out.println("Task1 Kickoff");
Task1 task1 = new Task1();
task1.start();
// Task2
System.out.println("Task2 Kickoff");
Task2 task2 = new Task2();
Thread task2Thread = new Thread(task2);
task2Thread.start();
task1.join();
task2Thread.join();
// Task3
System.out.println("Task3 Kickoff");
for (int i = 301;i < 399;i++) {
System.out.print(i + " ");
}
System.out.println("Task3 end");
}
}