메모장

[멘토 씨리즈] 스레드 본문

JAVA/[멘토씨리즈]

[멘토 씨리즈] 스레드

Itchild 2024. 4. 9. 13:23
728x90
반응형

 

  • 프로세스 : 프로세스란 프로그램이 동작하여 메모리에 올려진 상태를 말하며 실행중인 프로그램을 의미
  • 스레드 : 스레드는 프로세스 내에서 독립적으로 실행되는 작업 단위를 의미. 프로세스 내의 주소공간 이나 자원들과 같은 스레드끼리 공유하면서 실행된다.
  • 멀티 스레드 : 스레드는 임의의 클래스에 Thread 클래스를 상속하거나 Runnable 인터페이스를 상속 하여 구현 할 수 있는데 , 하나의 프로세스 안에서 스레드를 여러개 선언하여 멀티 스레드를 사용할 수 있다.
  • 동기화 메서드 : 멀티 스레드를 구현할 경우, 스레드의 동작 순서와 자원 공유를 위해 스레드 동기화를 통해 기능을 구현한다. 스레드 객체 내부의 동기화 메서드를 실행하면 다른 스레드가 동기화 메서드를 실행하지 못하도록 스레드 끼리의 자원공유를 제어한다.
  • 스레드 상태 : 스레드를 생성하고 동작을 시작하면 다양한 상태를 가지게 된다. 스레드의 상태는 자동으로 변경될 수 있고 개발자에 의해 임의로 변경할 수 있다.
상태
상수
설명
생성
NEW
스레드 객체가 생성되었지만 아직 start()메서드가 호출되지 않은 상태
대기
RUNNABLE
실행 대기 또는 실행 상태로 언제든지 갈 수 있는 상태
일시정지
WATING
다른 스레드가 종료 될 때 까지 대기하는 상태
TIMED_WATING
주어진 시간동안 대기하는 상태
BLOCKED
락이 풀릴 때까지 대기하는 상태
종료
TERMINATED
수행을 종료한 상태

 

  • sleep 메서드 : 스레드의 상태를 잠시 정지 하고 싶으면 sleep 메서드를 사용해 원하는 시간(초 단위) 만큼 정지 시킬 수 있다.
  • wait() , notify() 메서드 : wait(),notify() 메서드를 사용하면 원하는 시점에 스레드를 잠시 종료하거나 다시 시작할 수 있다.

 

728x90
반응형