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 |
Tags
- 조건문
- enum
- comparator
- 자바
- 객체
- 동적 문자열
- 동적 데이터
- 변수초기화
- Thread
- 코딩
- MAP
- 변수선언
- Java
- 쓰레드
- ListSort
- io
- 계산기
- 동적 버튼 onclick
- 연산자
- 객체지향
- 고급자바
- 기초
- Comparable
- 변수
- IBatis CRUD
- oclick 동적
- I/O
- iBatis
- 동적 버튼 생성
- IBatis 게시판
Archives
- Today
- Total
Jun's Blog
[Java] 멀티 쓰레드를 활용한 카운트다운 처리 본문
import javax.swing.JOptionPane;
/**
* 멀티 쓰레드를 활용한 카운트다운 처리
*/
public class T06_ThreadTest {
// 입력 여부를 확인하기 위한 변수 선언
// 모든 쓰레드에서 공통으로 사용할 변수
public static boolean inputCheck = false;
public static void main(String[] args) {
Thread th1 = new DataInput();
Thread th2 = new CountDown();
th1.start();
th2.start();
}
}
/**
* 데이터를 입력받는 메서드
*/
class DataInput extends Thread{
@Override
public void run() {
String str = JOptionPane.showInputDialog("아무거나 입력하세요");
System.out.println("입력한 값은 " + str + "입니다.");
// 입력이 완료되면 inputCheck 변수를 true로 변경한다.
T06_ThreadTest.inputCheck = true;
}
}
/**
* 카운트다운 처리를 위한 쓰레드 클래스
*/
class CountDown extends Thread{
@Override
public void run() {
for(int i = 10; i >= 1; i--) {
// 입력이 완료되었는지 여부를 검사하고 입력이 완료되면 run()메서드를 종료시킨다.
// 즉, 현재 쓰레드를 종료 시킨다.
if(T06_ThreadTest.inputCheck == true) {
return; // run() 메서드가 종료되면 쓰레드도 죽는다.
}
System.out.println(i);
try {
Thread.sleep(1000); // 1초 동안 잠시 멈춘다
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 10초가 경과되었는데도 입력이 없으면 프로그램을 종료한다.
System.out.println("10초가 지났습니다. 프로그램을 종료합니다.");
System.exit(0); // 프로그램을 종료시키는 명령
}
}
<프로그램을 실행 시키면 바로 카운트되고 사용자 입력에서 값을 입력하면 카운트가 정지된다>
'High Java > Thread' 카테고리의 다른 글
[Java] Thread에서 데이터를 공통으로 사용하는 방법 예제 (0) | 2020.10.22 |
---|---|
[Java] Thread 알파벳 대문자 출력하고 끝낸 순서대로 결과 나타내기 (0) | 2020.10.22 |
[Java] Thread를 이용해 컴퓨터와 가위 바위 보 게임하기 (0) | 2020.10.22 |
[Java] 단일 쓰레드에서의 사용자 입력 처리하기 (0) | 2020.10.22 |
[Java] Single Thread & Multi Thread (0) | 2020.10.22 |
Comments