[혼공자] - Chapter 12

SGIYLEVOELR·2022년 2월 11일
1

혼공자

목록 보기
4/6

테스트 끝나고 행복해서 금, 토 쭉 쉼.. ㅋ
스레드는 한 번에 완벽하게 이해하지 않으면 어려울 거 같다아...ㅜㅜ

p.539 2번

예제

// 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) {
            }
        }
    }
}

결과

  • 동영상을 재생합니다.
  • 음악을 재생합니다.
  • 가 출력된 후 1000mm초 지연 후 총 3번 반복된다.

p.550

// 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씩 지연 후 반복 출력
  • 모두 다 끝나면 메인 스레드 종료가 출력된다.

0개의 댓글