본문 바로가기
  • 개발자를 꿈꾸는 중
Java

Thread

by 느보리 2022. 5. 6.
반응형

쓰레드

  • CPU를 사용하는 최소 단위
  • 동시 실행에 필요
  • 동시성과 병렬성을 가짐

방법 1. Thread 상속

  • Thread 클래스를 상속 받고 그 안에 run() 오버라이딩 하기

Thread 2개일 때

  1. run() 메서드를 오버라이딩 하는 클래스를 만든다.
  2. 이 안에 하나의 행동을 프로그래밍 한다.

  3. main 메서드에 쓰레드 객체 생성/시작

  4.이곳에 동시에 진행될 것을 또 프로그래밍한다.

 

Thread 3개일 때

  1. run() 메서드를 오버라이딩 하는 클래스를 만든다.
  2. 이 안에 하나의 행동을 프로그래밍 한다.
  3. 또다른 Thread를 상속하는 클래스를 만들어 run() 메서드를 오버라이딩한다. 메인에 들어갔던 계시글 실행코드를 이 넣어준다.

  4. main 메서드에는 쓰레드 객체만 생성/시작

 

방법 2. Runnable 인터페이스

  • Runnable은 start() 메서드가 없어서 따로 Thread 객체를 만들어 사용해야 한다.

Thread 2개일 때, Thread 3개일 때

방식은 Thread를 상속하는 거와 동일하다. extends Thread 대신에 implements Runnable을 입력한다.

다른 점은 Thread 타입의 객체를 생성하는 것이 아니라 Runnable 타입의 객체를 생성한다(인터페이스는 객체생성이 불가하니 타입만 그렇고 당연히 secondFile 생성자를 만든다.).

 

하지만 Runnable 인터페이스에는 Thread를 시작하는 start() 메서드가 없어서 생성한 객체를 다시 Thread 객체 안에 넣어주어야 한다.

 

Runnable 인터페이스에 익명 이너클래스 사용

 

  • inner Interface 계시글에서 보았던 것 처럼 이너 인터페이스를 Runnable에 적용시킬 수 있다.

Thread 객체를 생성할 때 익명 이너클래스를 넣어보자.

 

 

 

 

 

반응형

'Java' 카테고리의 다른 글

Thread - 동기화  (0) 2022.05.09
Thread - 속성  (0) 2022.05.09
예외 처리 방식 3 - 사용자 정의  (0) 2022.05.06
ArrayList  (0) 2022.05.04
예외 처리 방식 1 - try/catch, 리소스 자동해제  (0) 2022.05.04