400 likes | 530 Views
10. Multithreading. Java. public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt (a1[0]); b = Integer.parseInt (a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println (" 두수의 합은 " + sum + " 입니다 "); }
E N D
10. Multithreading Java public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println("두수의 합은 " + sum + "입니다"); } }
Threads Concept Multiple threads on multiple CPUs Multiple threads sharing a single CPU
Thread Class • java.lang Package Thread() Thread(String s) Thread(Runnable r) Thread(Runnable r, String s)
Thread states • New • Runnable(ready) • Running(executing) • Waiting • Dead(finished)
Java : 1 Java : 2 Java : 3 Java : 4 Java : 5 Java : 6 Java : 7 Java : 8 Java : 9 Java : 10
Java : 1 Java : 2 Java : 3 Java : 4 Java : 5 Java : 6 Java : 7 Java : 8 Java : 9 Java : 10
1: Thread1 1: Thread2 2: Thread1 2: Thread2 3: Thread1 3: Thread2 4: Thread1 4: Thread2 5: Thread1 5: Thread2 6: Thread1 6: Thread2 7: Thread1 7: Thread2 8: Thread1 8: Thread2 9: Thread1 9: Thread2 10: Thread1 10: Thread2 End: Thread1 End: Thread2
1: Thread2 1: Thread1 2: Thread2 2: Thread1 3: Thread2 3: Thread1 4: Thread2 4: Thread1 5: Thread2 5: Thread1 6: Thread2 6: Thread1 7: Thread2 7: Thread1 8: Thread2 8: Thread1 9: Thread2 9: Thread1 10: Thread2 10: Thread1 End: Thread2 End: Thread1
setPriority() • Changes the priority of this thread.
1 : Third Thread : 1 1 : First Thread : 5 1 : Second Thread : 10 2 : Second Thread : 10 3 : Second Thread : 10 4 : Second Thread : 10 2 : First Thread : 5 3 : First Thread : 5 4 : First Thread : 5 5 : First Thread : 5 2 : Third Thread : 1 5 : Second Thread : 10 3 : Third Thread : 1 4 : Third Thread : 1 5 : Third Thread : 1
***** Start ***** ***** End***** 1 : Thread2 1 : Thread1 2 : Thread2 2 : Thread1 3 : Thread2 3 : Thread1 End : Thread2 End : Thread1
5 스레드의 시작과 종료 • 실습예제
***** Start ***** 1 : Thread1 1 : Thread2 2 : Thread1 2 : Thread2 3 : Thread1 3 : Thread2 End : Thread1 End : Thread2 ***** End *****
synchronized Method Critical section unlock Critical section 329 page
Donator3 : 0 Donator3 : 1 Donator1 : 0 Donator4 : 0 ......... Donator5 : 62 Donator3 : 124 Donator1 : 126 Donator4 : 125 Donator2 : 62 Total : 504000
Donator1 : 0 Donator1 : 1 Donator1 : 2 Donator3 : 0 ......... Donator2 : 42 Donator3 : 102 Donator5 : 92 Donator1 : 62 Donator2 : 43 Total : 503000
java.lang.Object Class - wait(), notify(), notifyAll()
Producer ########## : Produce 0 Consumer########## : Consume 0 Producer ########## : Produce 1 ............................ Consumer########## : Consume 7 Producer ########## : Produce 8 Consumer########## : Consume 8 Producer ########## : Produce 9 Consumer########## : Consume 9