MapleStory Cookie With Halo

☕ JAVA/☕ 개념지식

[JAVA][Thread]Multi Thread

뉴이 NUEY 2024. 12. 1. 14:33
반응형

 

Process & Thread

 

 

  • Process
    • 실행중인 프로그램을 말한다.

    • 자원resources(memory, CPU..)과 Thread로 구성되어있다.


  • Thread
    • 프로센스 내에서 실제 작업을 수행한다.

    • 모든 process는 최소한 하나의 thread를 가지고 있다.

    • 프로세스의 일꾼 같은 역할.

 


 

하나의 새로운 프로세스를 생성하는 것보다
하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다.

 

💡 스레드가 하나일 때 Single Thread Process, 여러 개일 때는 Multi Thread Process라고 한다.
작업관리자-세부정보-상태 우클릭-열선택-스레드 체크 하면 실행중인 프로세스들의 스레드 갯수를 확인할 수 있다.
우리가 사용하는 프로그램들 대부분은 멀티 스레드이다.

 

  •  장점
    • 시스템 자원을 효율적으로 사용.

    • 응답성이 향상된다.
      → 한꺼번에 여러프로그램에서 응답받기 가능.

    • 작업이 분리되어 코드가 간결해진다.


  • 단점
    • 보통 아래처럼 쓰레드가 프로세스의 자원을 공유하면서 문제가 생긴다.

    • (서로 자원을 요구하는) 교착상태가 발생하지 않도록 주의해야 한다.
      → 작업할 기회를 갖지 못하는 기아 상태에 처한다.


💡 동기화 Synchronization
 멀티스레드 환경에서 공유 자원의 일관성을 유지하기 위해,
한 번에 하나의 스레드만 자원에 접근하도록 하는 기술.

 멀티 쓰레드는 동기화가 잘 동작하도록 해야한다.

 


참조영상

반응형