본문 바로가기

강좌/JAVA THREAD

자바 쓰레드(Thread) - 싱글쓰레드(single thread)와 멀티쓰레드(multi thread) 예제 2

1. 첫번째 예제 : 싱글쓰레드

javax.swing을 이용해서 입력받는 패널을 띄운다. 입력 값을 받으면 값을 콘솔에 찍고 그 다음에 for문을 돈다.

이 이야기는 입력 받은 값이 없으면 프로그램이 거기서 멈추고 for문을 타지 않는다. 전형적인 싱글쓰레드다.


2. 첫번째 예제 : 멀티쓰레드2

위의 싱글쓰레드에서 for문을 따로 뺐다. 그리고 Thread를 상속받아서 쓰레드로 만들었다.

이제는 input 패널이 뜨더라고 for문은 돈다. 멀티쓰레드다.






3. 두번째 예제 : 멀티쓰레드

위의 첫번째 예제에다가 10초동안 input패널에 값을 입력하지 않았을때 프로그램을 종료하도록 했다.

이를 위해서 메인메소드가 있는 클래스에 inputCheck라는 static boolean값을 생성하였다.


자식쓰레드중 for문을 돌면서 10부터 -1씩 빼는건데 뺄때 static inputCheck값을 체크해서 값이 true바뀌면 더이상 찍지 않는다. 여기서 이 클래스 역할은 일종의 카운트다운인셈이다.


Input값이 들어가면 boolean변수 inputCheck값을 true바꿔준다.



4. 싱글쓰레드 다른 예제

차례대로 숫자찍고, 대문자, 소문자, 한글 찍는다.



5. 멀티쓰레드 다른예제

위의 싱글쓰레드를 멀티로 바꿔보자.


제일 위에 싱글-> 멀티 바꾸는걸 보면 어렵지 않게 할 수 있다.