Java

Java_메인 스레드

ssmm95 2024. 10. 17. 10:10

메인 스레드 

: 자바 프로그램을 실행하면 처음에 시작되는 스레드가 메인 스레드(Main-thread) 이다 

프로그램의 기본 뼈대이고 프로그램의 시작과 끝을 관리한다

 

모든 자바 프로그램은 메인 스레드에서 시작된다 

public class Main { // main 메서드에서 시작!! 
    public static void main(String[] args) {
        System.out.println("Hello, Java!");
    }
}

 

- 메인스레드가 main 메서드 안의 코드를 순서대로 실행한다

- 만약 main 메서드 안에서 다른 스레드를 만들면 메인 스레드는 다른 스레드들을 관리하는 동시에 여러작업이 실행될 수 있도록 도와준다 

- 메인 스레드가 종료되면 프로그램도 종료된다 

 

구분 싱글 스레드 (Single-thread) 멀티 스레드 (Multi-thread)
정의 하나의 스레드가 순차적으로 작업을 처리하는 방식 여러 개의 스레드가 동시에 작업을 병렬로 처리하는 방식
작동 방식 한 번에 하나의 작업만 처리, 작업이 끝나야 다음 작업을 시작함 여러 스레드가 동시에 실행되며, 여러 작업을 병렬로 처리함
속도 작업이 순차적으로 이루어지기 때문에 속도가 느릴 수 있음 여러 작업을 동시에 처리할 수 있어 속도가 빠름
메모리 사용 메모리 사용이 상대적으로 적음 (스레드가 하나이기 때문) 여러 스레드가 메모리를 공유하여 효율적이지만, 동기화 관리 필요
안정성 한 번에 하나의 작업만 처리하므로 동기화 문제나 충돌 발생 가능성이 낮음 여러 스레드가 동시에 자원을 사용하므로 동기화 문제와 충돌 가능성 있음
사용 자원 시스템 자원 사용이 적음 시스템 자원을 많이 사용하여 메모리와 CPU 사용량이 증가할 수 있음
장점 - 구현이 간단하고 관리가 쉬움
- 동기화 문제 발생 가능성 낮음
- 여러 작업을 병렬로 처리하여 속도가 빠름
- 자원을 효율적으로 활용 가능
단점 - 한 번에 하나의 작업만 처리해 속도가 느림
- 프로그램이 멈추면 전체가 멈춤
- 동기화 문제 및 충돌 가능성 있음
- 복잡한 구현과 관리가 필요함

 

> 싱글 스레드는 메인 스레드가 종료되면 프로세스도 종료된다

> 멀테스레드에서는 실행중인 스레드가 하나라도 있다면 프로세스는 종료되지 않는다 

메인스레드가 작업 스레드보다 먼저 종료되더라도 작업스레드가 계속 실행중이면 프로세스는 종료되지 않는다

'Java' 카테고리의 다른 글

Java_스레드 상태  (0) 2024.10.17
Java_스레드 이름  (0) 2024.10.17
Java_멀티 스레드와 멀티 프로세스의 차이  (0) 2024.10.17
Java_제네릭(Generics)  (0) 2024.10.16
Java_어노테이션(Annotation)  (0) 2024.10.16