삽질개발

[Mindev 개발공부]Java Thread 에 대해서 알아보겠습니다. 본문

Java

[Mindev 개발공부]Java Thread 에 대해서 알아보겠습니다.

MinDev 2017. 9. 12. 23:37

쓰레드란

동시에 여러가지 작업을 동시에 수행할 수 있게하는것!!!

간단히 요약하자면 이러하다.

간단한 예제를 통해 알아보겠습니다.

먼저 Thread를 상속받는 class에 메소드 1개를 정의해보겠습니다.


class Thread13_1 extends Thread {
public void run() {
int i = 10;
while (i != 0 && !isInterrupted()) {
System.out.println(i--);
for (long x = 0; x < 2500000000L; x++)
;

}
System.out.println("카운트가 종료되었습니다.");
}
}

run메소드는 쓰레드가 실행중일때 실행 메소드이며 여기에서는 isInterrupted()가있는데 현 Interrupted를 boolean 값으로 반환합니다.

여기서 Interrupted 는 쓰레드가 멈춘걸의미합니다.

즉 10부터 쓰레드가 9.8.7....될때  0이아니거나 정지상태가 아닐때 계속 카운트를 찍어냅니다. 


이걸 이제 main에서 불러보겠습니다.


public class ThreadEx13 {


public static void main(String[] args) {

// TODO Auto-generated method stub


Thread13_1 th1 = new Thread13_1();

th1.start();


String input = JOptionPane.showInputDialog("아무 값이나 입력하세요.");

System.out.println("입력하신 값은" + input + "입니다.");

th1.interrupt();

System.out.println("isInterrupted();" + th1.isInterrupted());

}

}


Swing 으로 input을 받으며  눌름과동시에 쓰레드는 


th1.interrupt(); 이 코드로 인해 멈추게되며 위에 설명했다시피 true가 되므로 while 반복문이 멈추게됩니다.


결과를보자면


10

9

8

7

입력하신 값은123123213입니다.

isInterrupted();true

카운트가 종료되었습니다.



이 되겠습니다.


Comments