Thread
- Process : 프로그램이 실행되는 상태
- Process는 프로그램이 실행되면 OS로 부터 메모리를 할당 받아 실행
Thread
- Thread는 Process의 자원을 사용하는 실제 작업을 수행하는 단위
- Thread는 비동기적인 특성을 갖는다.
(동기적 - 작업이 종료된 후 다음작업 수행, 비동기적- 작업이 종료되지 않아도 여러작업 수행) - 병렬적인 연산방식으로 multi-thread를 수행할 수 있다.
임계구역문제 (Critical Section)
- 임계 구역 :멀티스레드 환경에서 여러 thread가 접근할 수 있는 공유자원에 대한 구역
- 임계구역문제 : 각 스레드가 공유변수에 접근하여 읽어서 값을 변경할 때 동시성의 문제로 변경되기 전에 값을 읽는 것 (Thread가 경쟁하는 부분)
동기화
- 동시접근이 불가하도록 한개의 thread만 접근 가능하도록 하는 것
- 동기화에서 오류가 나면 deadlock에 빠진다.
동기화 하는법
- Synchronized method
- 객체의 메소드에 synchronized 사용
- 사용 시 특정 thread가 메서드를 실행하는 동안 다른 thread는 lock된다
- Synchronized statement
- 현재 객체 또는 다른 객체를 lock으로 만든다
synchronized (참조형 수식) { 수행문; }
- 현재 객체 또는 다른 객체를 lock으로 만든다
'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 |