// education

스레드와 멀티태스킹 (Thread, Runnable 및 동기화)

하나의 애플리케이션 안에서 두 개 이상의 작업을 동시에 병렬 처리하는 스레드(Thread)와 멀티태스킹 및 동기화 기술을 배웁니다.


1. 스레드 핵심 용어 사전 (Glossary)


2. synchronized 동기화 처리 실습

class SharedPrinter {
    // 동기화 메소드로 1번에 1개 스레드만 텍스트 출력 허용
    public synchronized void printNotice(String user, String text) {
        System.out.print("[" + user + "]: ");
        for (int i = 0; i < text.length(); i++) {
            System.out.print(text.charAt(i));
            try { Thread.sleep(50); } catch (InterruptedException e) {}
        }
        System.out.println();
    }
}

public class MultiThreadSyncMain {
    public static void main(String[] args) {
        SharedPrinter printer = new SharedPrinter();

        Thread t1 = new Thread(() -> printer.printNotice("사용자 A", "안녕하세요! 동기화 테스트입니다."));
        Thread t2 = new Thread(() -> printer.printNotice("사용자 B", "반갑습니다! 멀티스레드입니다."));

        t1.start();
        t2.start();
    }
}

3. 자주 묻는 질문 (Q&A)

Q. thread.start() 대신 thread.run()을 호출하면 어떻게 되나요? A. start()는 새로운 독립 스레드를 생성하여 병렬로 run()을 실행하지만, run()을 직접 부르면 새 스레드가 생성되지 않고 현재 호출한 메인 스레드 상에서 단순 메소드로만 실행됩니다.

← 이전자바 GUI 스윙(Swing) 컴포넌트와 이벤트 처리 다음 →JDBC 데이터베이스 연동과 SQL CRUD 실행