▷ 기본 미션: p.550 [직접 해보는 손코딩] 코딩 과정 및 실행 결과 캡쳐하기
- AutoSaveThread.java
//1초 주기로 save() 메서드를 호출하는 데몬 스레드
package sec02.exam05;
public class AutoSaveThread extends Thread {
public void save() {
System.out.println("작업 내용을 저장함.");
}
@Override
public void run() {
while(true) {
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
break;
}
save();
}
}
}
- DaemonExample.java
//메인 스레드가 실행하는 코드
package sec02.exam05;
public class DaemonExample {
public static void main(String[] args) {
AutoSaveThread autoSaveThread = new AutoSaveThread();
autoSaveThread.setDaemon(true);
autoSaveThread.start();
try {
Thread.sleep(4000);
} catch(InterruptedException e) {
}
System.out.println("메인 스레드 종료");
}
}
- 실행 결과

1초 주기로 데몬 스레드의 sava() 메소드가 호출되어 "작업 내용을 저장함."을 출력한다. 4초가 지나면 메인 스레드가 종료되는데, 그때 "메인 스레드 종료" 문장이 출력되고 데몬 스레드도 자동 종료된다.
▷ 선택 미션: p.539 문제 2번 풀고, 풀이 과정 설명하기
- ThreadExample.java
package sec01.verify.exam02;
public class ThreadExample {
public static void main(String[] args) {
Thread thread1 = new MovieThread();
thread1.start();
Thread thread2 = new Thread(new MusicRunnable());
thread2.start();
}
}
- MovieThread.java
package sec01.verify.exam02;
public class MovieThread extends Thread {
@Override
public void run() {
for(int i = 0; i < 3; i++) {
System.out.println("동영상을 재생합니다.");
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
}
}
}
}
- MusicRunnable.java
package sec01.verify.exam02;
public class MusicRunnable implements Runnable {
@Override
public void run() {
for(int i = 0; i < 3; i++) {
System.out.println("음악을 재생합니다.");
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
}
}
}
}
- 실행 결과

- 풀이 과정
① new MusicRunnable()
Thread 클래스로부터 작업 스레드 객체를 직접 생성하려면 MusicRunnable을 매개값으로 갖는 생성자를 호출해야 한다.
② extends Thread
Thread를 상속받는 MovieThread 클래스를 생성한다.
③ implements Runnable
Runnable은 작업 스레드가 실행할 수 있는 코드를 가지고 있는 객체이다. Runnable은 인터페이스 타입이므로 구현 객체를 만들어서 대입해야 한다. Runnable에는 run()메소드 하나가 정의되어 있는데, 구현 클래스는 run()을 재정의해서 작업 스레드가 실행할 코드를 작성해야 한다.
'혼공자' 카테고리의 다른 글
[혼공단 7기] 혼자 공부하는 자바 6주차 (0) | 2022.02.28 |
---|---|
[혼공단 7기] 혼자 공부하는 자바 5주차 (0) | 2022.02.20 |
[혼공단 7기] 혼자 공부하는 자바 3주차 (0) | 2022.01.31 |
[혼공단 7기] 혼자 공부하는 자바 2주차 (0) | 2022.01.23 |
[혼공단 7기] 혼자 공부하는 자바 1주차 (0) | 2022.01.16 |