Skip to content

1. Thread 생성

dami0806 edited this page Jan 26, 2025 · 1 revision

Java Multithreading: Thread와 Runnable 비교 및 활용

필요성: 응답성과 성능

  1. 응답성: 비동기로 작업을 처리해서, 사용자 인터페이스(UI) 또는 다른 중요한 작업이 멈추지 않고 빠르게 응답할 수 있습니다.
  2. 성능: 병렬 처리를 통해 다중 코어를 활용하고, 작업 실행 시간을 줄이고 효율적으로 시스템 자원을 사용합니다.

시나리오 예시

은행 금고에 접근하는 해커와 경찰

image
  1. 상황 설명

    • 두 명의 해커가 은행 금고의 비밀번호를 추측합니다.
    • 해커는 하나는 오름차순(0부터), 다른 하나는 내림차순(최댓값부터)으로 비밀번호를 탐색합니다.
    • 경찰은 10초 후 금고에 도착하여 해커들을 체포합니다.
  2. 작동 방식

    • 해커와 경찰은 각각 독립적인 스레드로 실행됩니다.
    • 경찰 스레드는 10초 동안 카운트다운 후 프로그램을 종료합니다.
    • 해커 중 하나라도 비밀번호를 맞추면 프로그램은 종료됩니다.

다이어그램

image

Thread 실행 방법

1. Runnable 인터페이스 구현

  • 실행 로직과 스레드 객체를 분리.
  • 재사용 가능하며, 다중 상속이 필요한 경우 적합.

2. Thread 클래스 상속

  • 스레드와 실행 로직이 결합.
  • 간단한 작업을 빠르게 처리할 때 적합.

결과

image image

runnable장점과 mutilpleThread

Clone this wiki locally