Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 안드로이드
- SlidingRootNav
- node.js
- 네이게이션 드로우
- HTTP
- android
- recyclerview
- EventEmitter
- 알고리즘
- navigation
- Java 지네릭스(Generics)에 대하여 알아보겠습니다.
- 라이브러리
- 자바
- databinding
- 백준
- android list
Archives
- Today
- Total
삽질개발
[Mindev 개발공부]Java Thread 에 대해서 알아보겠습니다. 본문
쓰레드란
동시에 여러가지 작업을 동시에 수행할 수 있게하는것!!!
간단히 요약하자면 이러하다.
간단한 예제를 통해 알아보겠습니다.
먼저 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
카운트가 종료되었습니다.
이 되겠습니다.
'Java' 카테고리의 다른 글
[Mindev 개발공부]Java Interface (0) | 2017.10.10 |
---|---|
[Mindev 개발공부]Java 지네릭스(Generics)에 대하여 알아보겠습니다. (0) | 2017.09.07 |
Comments