정처기 감자정처기 감자
Java객체지향

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

Java 스레드(Thread)와 Runnable 인터페이스

코딩Java
읽는데 5분 소요
처음 쓰인 날: 2026-02-17
마지막 수정일: 2026-02-17
조회수: —
선수학습(1개)
  • Java 인터페이스와 implements

요약

Java에서 스레드를 생성하는 두 가지 방법(Thread 상속, Runnable 구현)을 알아봅니다. 정보처리기사 실기에 출제된 스레드 문제를 풀기 위한 핵심 개념을 정리합니다.

스레드 핵심 정리

개념설명예시
스레드 (Thread)프로그램 안에서 동시에 실행되는 작업 단위음악 재생하면서 채팅하기
Runnable 인터페이스run() 메서드를 구현하여 스레드 생성class Car implements Runnable
Thread 클래스 상속Thread를 상속받아 스레드 생성class Car extends Thread
start()스레드를 실행하는 메서드t1.start();
run()스레드가 실행할 코드를 담는 메서드public void run() { }

스레드란?

스레드(Thread) 는 프로그램 안에서 동시에 실행되는 작업 단위입니다.

보통 프로그램은 코드를 위에서 아래로 한 줄씩 실행합니다. 하지만 스레드를 사용하면 여러 작업을 동시에 처리할 수 있습니다.

text
코드 하이라이팅 중…

예를 들어, 음악을 들으면서 채팅을 하는 앱은 "음악 재생" 스레드와 "채팅" 스레드가 동시에 실행되는 것입니다.


스레드 생성 방법 2가지

Java에서 스레드를 만드는 방법은 2가지입니다.

방법키워드핵심
방법 1: Runnable 인터페이스 구현implements RunnableThread 생성자에 객체 전달
방법 2: Thread 클래스 상속extends Thread직접 start() 호출

두 방법 모두 run() 메서드에 스레드가 실행할 코드를 작성하고, start()로 스레드를 실행합니다.

Java 스레드 생성 방법 2가지 비교
Runnable 구현 방식과 Thread 상속 방식 모두 run() 메서드를 구현하고 start()로 실행합니다.
시험에서는 Runnable 방식이 출제되었습니다
22년 1회 실기에서 Runnable 인터페이스를 이용한 스레드 생성 문제가 출제되었습니다. 두 가지 방법의 차이를 알아두면 좋습니다.

방법 1: Runnable 인터페이스 구현

인터페이스인 Runnable을 구현(implements)하는 방법입니다. 시험에 출제된 방식입니다.

단계별 과정

1단계: Runnable 인터페이스를 구현하는 클래스를 작성합니다.

java
코드 하이라이팅 중…

Runnable은 Java가 제공하는 인터페이스입니다. "이 클래스는 스레드로 실행할 수 있다"는 의미입니다.

2단계: run() 메서드를 구현합니다.

java
코드 하이라이팅 중…

run() 메서드는 Runnable 인터페이스가 요구하는 메서드입니다. 인터페이스를 구현하는 클래스는 인터페이스의 메서드를 반드시 구현해야 합니다.

3단계: Thread 객체를 생성할 때, Runnable 구현 클래스의 인스턴스를 전달합니다.

java
코드 하이라이팅 중…

new Car()로 Car 객체를 만들고, 이것을 Thread 생성자에 전달합니다. Thread는 이 객체의 run() 메서드를 실행할 준비를 합니다.

4단계: start()로 스레드를 실행합니다.

java
코드 하이라이팅 중…

start()를 호출하면 새로운 스레드가 만들어지고, 그 안에서 Car의 run() 메서드가 실행됩니다.

전체 코드

java
코드 하이라이팅 중…

실행 흐름

순서코드설명
1new Car()Runnable을 구현한 Car 객체 생성
2new Thread(new Car())Thread 객체 생성, Car 객체를 전달
3t1.start()새 스레드 시작 -> Car의 run() 실행
4run() 실행"run" 출력
start()와 run()의 차이
start()는 새로운 스레드를 만들어서 run()을 실행합니다. run()을 직접 호출하면 새 스레드 없이 현재 스레드에서 그냥 실행됩니다. 시험에서는 start()를 사용합니다.

방법 2: Thread 클래스 상속

Thread 클래스를 상속(extends)받는 방법입니다.

java
코드 하이라이팅 중…

Thread를 상속받으면 Car 자체가 Thread이므로, new Thread()를 따로 만들지 않고 바로 start()를 호출할 수 있습니다.


두 가지 방법 비교

구분Runnable 구현Thread 상속
키워드implements Runnableextends Thread
스레드 생성new Thread(new Car())new Car()
스레드 실행t1.start()t1.start()
run() 구현필수필수
다른 클래스 상속가능 (인터페이스는 여러 개 구현 가능)불가능 (Java는 단일 상속)
왜 Runnable 방식을 더 많이 사용할까요?
Java는 클래스를 하나만 상속(extends)할 수 있습니다. Thread를 상속받으면 다른 클래스를 상속받을 수 없습니다. 반면 Runnable은 인터페이스이므로 다른 클래스를 상속받으면서 동시에 구현할 수 있습니다.

시험 문제 풀이 전략

핵심 패턴 외우기

java
코드 하이라이팅 중…

빈칸 문제 풀이법

  1. 클래스 선언부에서 implements Runnable 또는 extends Thread를 확인합니다
  2. implements Runnable이면 -> new Thread(new 클래스명())
  3. extends Thread이면 -> new 클래스명()

정보처리기사 실기 기출 문제

문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999