쓰레드에 대하여

2025. 1. 20. 00:37·Back End/JAVA

⭐️ 쓰레드란 ? 

쓰레드란 프로그램 내에서 실행의 흐름을 가지고 있는 최소단위이다.

main 메서드도 실생히 메인 쓰레드가 실행되는 것이다‼️

 

🧐 그럼 쓰레드는 왜 사용할까 ?

 

1. 병렬 처리 : 여러 작업을 동시에 수행하여 애플리케이션의 성능을 향상

 

2. 반응성 개선 : 사용자 인터페이스(UI) 애플리케이션에서 긴 작업을 별도의

스레드에서 처리하여 UI가 멈추지 않도록 한다.

 

3. 자원 효율성 : 시스템 자원을 효율적으로 활용하여 더 많은 작업을 처리할 수 있다.

 


 

[ 쓰레드 사용법1 - Thread 상속 ]

 

[ MyThread 클래스]

public class MyThread extends Thread {
    @Override
    public void run() {
        // 스레드가 실행할 작업
        for(int i = 1; i <= 5; i++) {
            System.out.println("MyThread: " + i);
            try {
                Thread.sleep(500); // 0.5초 대기
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

 

우선 Thread를 상속받고 run() 메서드를 오버라이딩 하여 , 메인문처럼 해당 쓰레드 실행시 

독립적으로 실행되는 run() 메서드를 생성한다.

 

sleep() 메서드를 사용해 0.5초의 대기를 발생시켜준다.

 

[ Main 클래스 ]

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start(); // 스레드 시작

        // 메인 스레드에서의 작업
        for(int i = 1; i <= 5; i++) {
            System.out.println("Main Thread: " + i);
            try {
                Thread.sleep(500); // 0.5초 대기
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

 

thread 객체를 만들고 , thread.start()로 MyThread를 실행시켜주고 그 다음

MainThread를 실행시켜서 멀티 쓰레드를 만들어 보았다.

 

각자 코드의 0.5초의 대기를 주는 Thread.sleep(500) 메서드를 사용해

0.5초의 대기를 주었다.

 

 

결과는 다음과 같이 우선 실행된 MyThread부터 실행이 되고,

그다음 MainThread가 실행이 된다.

 

즉 독립적으로 Thread를 실행 시킬 수 있다 ‼️

 


단일 쓰레드만 필요한 곳이 있고 ,
동시에 일을 처리 하는것처럼 보이지만,
굉장히 빠르게 번갈아 실행이되는 멀티 쓰레드가
필요한 곳이 있기 때문에, 상황에 맞게 쓰레드를
사용하자 ‼️

'Back End > JAVA' 카테고리의 다른 글

제네릭에 대하여  (0) 2025.01.17
exception에 대하여  (1) 2025.01.15
instanceof에 대하여  (0) 2025.01.13
상속에 대하여  (3) 2025.01.11
접근 제한자에 대하여  (1) 2025.01.09
'Back End/JAVA' 카테고리의 다른 글
  • 제네릭에 대하여
  • exception에 대하여
  • instanceof에 대하여
  • 상속에 대하여
KoesJin
KoesJin
hEELo
  • KoesJin
    Seok DevLog
    KoesJin
  • 전체
    오늘
    어제
    • 분류 전체보기 (109)
      • Back End (31)
        • DataBase (15)
        • JAVA (12)
        • JDBC (4)
      • Front End (9)
        • HTML5 & CSS (3)
        • Java Script (6)
        • REACT (0)
      • Server (9)
        • JSP - TomCat - Servlet (7)
        • Spring Boot (2)
      • GitHub (1)
      • IT 지식 (기술면접 대비) (20)
      • Weekly TIL (39)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    css
    from
    GC
    DAO
    exception
    View
    INNER JOIN
    order by
    weekly til - day 38
    dml
    DDL
    weekly til - day 39
    commit
    weekly til - day 43
    select
    MVC 패턴
    weekly til - day 40
    where
    순서에 대하여
    weekly til - day 41
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
KoesJin
쓰레드에 대하여
상단으로

티스토리툴바