Java
스파르타 부트캠프 자바 5강 쓰레드 상태와 제어
H.S-Backend
2024. 5. 12. 21:34
음악을 듣다 일시정지를 하는 것과 마찬가지로 쓰레드도 일시정지 시킬 수 있다.
sleep() 재우다
interrupt()
일시정지시키다.
join(초 miils)
input 안에 정해진 시간동안 쓰레드가 작업하는것.(시간이 없으면 끝날때 까지 기다린다)
yield()
남은시간은 다음 쓰레드에게 양보, 자신은 실행대기상태가 된다.
synchronized(쓰레드 동기화)
임계영역을 설정하여 그 영역에 쓰레드가 진행 중 이라면 다른쓰레드가 영역을 침범하지 못핟록하는것
wait()
synchronized안에 수행하는 쓰레드를 기다리게한다.
notify()
wait상태인 임계영역안의 쓰레드를 다시 실행시킨다.
Lock
해당 영역 내 쓰레드의 진행 및 일시정지 등
이런 제약을 Lock 클래스를 이용하여 해결한다.
ReentrantLock = 재진입 가능한 Lock
ReentrantReadWriteLock = 읽기, 쓰기 Lock
StampedLock = 낙관적인 Lock, 데이터 변경 전 락을 걸지않는것.
Condition
영역 내에 특정 쓰레드만 지칭하고 실행, 일시정지가 어려워
대기중인 쓰레드를 분리하여
특정조건이 일치할 시
해당 쓰레드만 실행 시킬 수 있다.
ReentrantLock클래스와 함께 사용된다.
await(), signal()을 사용한다.
https://hs-backend.tistory.com/60
스파르타 코딩클럽 부트캠프 (Java 문법 5장)
프로세스란운영체제로부터 자원을 할당받는 작업의 단위 프로세스는실행 중인 프로그램을 의미한다프로세스 구조운영체제가 프로그램 실행을 위한 프로세스를 할당할 때프로세스안의 Code, Da
hs-backend.tistory.com
반응형