IT자료실/Java

Java (Thread)

Ramda 2022. 4. 26. 23:13

Thread

  • Process : 프로그램이 실행되는 상태
  • Process는 프로그램이 실행되면 OS로 부터 메모리를 할당 받아 실행

Thread

  • Thread는 Process의 자원을 사용하는 실제 작업을 수행하는 단위
  • Thread는 비동기적인 특성을 갖는다.
    (동기적 - 작업이 종료된 후 다음작업 수행, 비동기적- 작업이 종료되지 않아도 여러작업 수행)
  • 병렬적인 연산방식으로 multi-thread를 수행할 수 있다.

임계구역문제 (Critical Section)

  • 임계 구역 :멀티스레드 환경에서 여러 thread가 접근할 수 있는 공유자원에 대한 구역
  • 임계구역문제 : 각 스레드가 공유변수에 접근하여 읽어서 값을 변경할 때 동시성의 문제로 변경되기 전에 값을 읽는 것 (Thread가 경쟁하는 부분)

동기화

  • 동시접근이 불가하도록 한개의 thread만 접근 가능하도록 하는 것
  • 동기화에서 오류가 나면 deadlock에 빠진다.

동기화 하는법

  1. Synchronized method
    • 객체의 메소드에 synchronized 사용
    • 사용 시 특정 thread가 메서드를 실행하는 동안 다른 thread는 lock된다
  2. Synchronized statement
    • 현재 객체 또는 다른 객체를 lock으로 만든다
      synchronized (참조형 수식) {
      수행문;
      }

'IT자료실 > Java' 카테고리의 다른 글

리플렉션 .class 클래스  (0) 2022.05.31
jar와 war에 대해서  (0) 2022.05.30
Java (java.sql 패키지-2)  (0) 2022.04.22
Java (java.sql 패키지-1)  (0) 2022.04.21
Java (java.io 패키지)  (0) 2022.04.20