LockSupport

sungs·2025년 7월 11일

자바

목록 보기
39/95

LockSupport

동기화의 단점을 해결하기 등장한 cocurent 라이브러리에 들어있느 기본 클래스 중 하나다.
구성은 park(), parkNanos(nanos), unpark(thread) 등이 있다.

park(): 스레드.park()로 사용하며, 이를 사용하면 스레드가 waiting 상태로 바뀐다.
parkNanos(nanos): 이 역시도 스레드.parkNanos(nanos)로 사용하며 이를 사용하며 특정 시간 동안 timed_waiting 상태로 바뀌며 시간이 지나면 runnable 상태로 바뀐다.
unpark(thread): LockSupport(스레드 이름)으로 사용하며 waiting 상태였던 스레드를 깨워준다.

이 메서드들을 적절히 사용하면 특정 스레드를 멈추고 다른 스레드가 작업하도록 할 수 있다.

단점

그럼에도 lock을 직접 만들어야 해서 상당히 귀찮다. 한마디로 synchronized와 달리 저수준이다.
그래서 자바에서는 lock 인터페이스와 이를 구현하는 ReentrantLock로 다 구현해 두었다.

profile
앱 개발 공부 중

0개의 댓글