테스트 끝나고 행복해서 금, 토 쭉 쉼.. ㅋ
스레드는 한 번에 완벽하게 이해하지 않으면 어려울 거 같다아...ㅜㅜ
예제
// ThreadExample.java
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
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
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) {
}
}
}
}
결과
// AutoSaveThread.java
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
public class DaemonExample {
public static void main(String[] args) {
AutoSaveThread autoSaveThread = new AutoSaveThread();
autoSaveThread.setDaemon(true);
autoSaveThread.start();
try {
Thread.sleep(3000);
} catch (Exception e) {
}
System.out.println("메인 스레드 종료");
}
}
결과
작업 내용을 저장함.
이 출력되고 3000이 될 때까지 1000씩 지연 후 반복 출력메인 스레드 종료
가 출력된다.