본문 바로가기
IT/JAVA

JAVA - 스레드(Thread)

by 삐약 개발자 2024. 12. 3.
반응형

수많은 일들을 하고 있는것!

스레드 용어가 나오면 같이 나오는 것! 프로세스!

 

수많은 프로그램이 실행이 되고 있음

 

프로세스란?? ( 예> 공사장 )

프로세스는 실행 중인 애플리케이션을 의미

프로세스는 데이터, 컴퓨터 자원, 그리고 스레드로 구성

보통 일련의 작업 단위를 이야기 함

하나의 프로그램을 실행하는 단위

 

스레드는 그 일을 수행하고 있는것!!!

스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행

스레드는 하나의 코드 실행 흐름이라고 볼 수 있

 

하나의 프로그램 = 하나의 프로세스

하나의 프로그램 => 여러개의 프로세스

 

동시성!!

 

메인 스레드(Main thread)

자바 애플리케이션을 실행하면 가장 먼저 실행되는 메서드는 main 메서드이며 메인 스레드가

main 메서드를 실행시켜줌

main 메서드의 코드를 처음부터 끝까지 차례대로 실행! return 만나면 실행종료!

 

자바 애플리케이션의 소스 코드가 싱글 스레드로 작성되었다면, 그 애플리케이션이 실행되어 프로세스가 될 때 오로지 메인 스레드만 가지는 싱글 스레드 프로세스가 됨

반면 메인 스레드에서 다른 스레드를 생성하여 실행시킨다면 해당 애플리케이션은 멀티스레드로 동작하게 됨

 

멀티 스레드(Multi-Thread)

하나의 프로세스는 여러개의 스레드를 가질수 있는것이 멀티스레드 프로세스!

즉 여러 스레드가 동시에 작업을 수행할수 있음 !! == 멀티 스레딩

 

스레드의 동기화 - 락을 거는 방법이 가장 안전!!

 

개발을 할때 기능을 만들기 전에 중요한건 설계!!!

은행을 예로 들면

1. 잔고 확인

2. 상대계좌 상태 확인

3. 내 계좌에 금액 차감

4. 상대 계좌에 금액 증가

(금액이 그만큼 있는지 확인!)

 

Queun - 큐

게임 큐돌린다 처럼 온 순서대로 처리!

 

동시성 문제가 깨질수도 있음

 


컴퓨터 부품 노예로 비유!!

 

코어의 수 - 노예의 수

쓰레드 - 노예의 손 갯수

오버클럭 - 노예까 발까지 써서 옥수수 수확

캐쉬메모리 - 노예가 짊어지고 있는 백팩

램 - 노예가 준비한 리어카

is,i5,i7 - 노예가 3 , 5 7 / 실제 코어수와 다름

i7 10900 - 7마리 10년도생 노예의 손이 900개

 

램 다다익선 - 옥수수를 많이 따도 리어카가 작으면 한번에 창고로 못가져감

 

그래픽 카드 - GPU - 옥수수 말고 감자 캐는거 시킬 노예 / 옥수수 딸수 있긴 한데 일 ㅈ같이 못함

근데 감자 캐는건 존나 잘함

 

파워 - 노예에게 주는 월급

SSD - 최신식의 좋은 저장창

 


 

스레드의 상태와 실행 제어 메서드 요약

 

 

스레드 한번더 천천히 복습해보기

반응형

'IT > JAVA' 카테고리의 다른 글

JAVA - 자바 가상 머신(Java Virtual Machine)  (0) 2024.12.03
JAVA - 파일 입출력(I/O)  (0) 2024.12.03
JAVA - 스트림(Stream)  (0) 2024.12.02
JAVA - 람다(Lambda)  (0) 2024.12.02
JAVA - 애너테이션(Annotation)  (1) 2024.12.02