경합 조건 : 2개(또는 그 이상)의 프로그램이 같은 자원에 동시에 접근하고, 자원 사용 순서에 따라 결과가 달라지는 경우
락 대기 : 락을 얻을 수 없으면 락이 사용 가능할 때까지 어떤 식으로도 기다려야한다.
synchronized
, ReentrantLock
, Object.wait()
등은 내부적으로 OS나 JVM의 대기 큐(wait queue)를 사용한다.단기 락 : 아주 짧은 시간 동안만 리소스를 보호하며 곧바로 락 해제 장기 락 : 락을 오래 보유함
이벤트 루프 : 자바스크립트는 싱글 스레드이기 때문에 동시에 여러 작업을 직접 실행 못함 -> 자연스럽게 비동기 작업을 처리하는 핵심 메커니즘
worker_threads
모듈 사용 (Worker
클래스)