티스토리 뷰

개발

재진입성(Reenterant)이란?

소프트웨어 장인 후보생 메이슨 킴 2017.11.28 11:05
  1. 어떤 스레드가 다른 스레드가 가진 락을 요청하면 해당 스레드는 대기 상태에 들어간다.
  2. 재진입이 불가능한 락은 자신이 가진 락을 재요청하는 경우 대기 상태에 들어간다.(1과 동일)
  3. 재진입이 가능한 락은 자신이 가진 락을 재요청하는 경우 대기하지 않고 해당 락을 다시 확보 할 수 있다.
  4. 따라서 재진입이 보장되는 락은 재귀호출을 포함한 병렬 실행을 보장한다.
  5. 락의 확보를 확보 요청 단위로 관리하는 것이 아닌 스레드 단위로 락을 확보한다는 것을 의미한다.
  6. 그래서 해당 스레드에서 해당 락의 확보와 해제 횟수를 카운팅하는 방식으로 락의 해제 여부를 판단한다.
  7. 자바의 synchronized 키워드를 통해 얻은 락을 암묵적인 락 혹은 모니터 락이라고 하며, 암묵적인 락은 재진입이 가능한 락이다.

참조 : 자바 병렬 프로그래밍 (에이콘)

'개발' 카테고리의 다른 글

람다 대수  (0) 2017.12.21
재진입성(Reenterant)이란?  (0) 2017.11.28
함수형 언어로의 전환  (0) 2017.11.17
순수함수(Pure Function)  (0) 2017.11.17
펫 프로젝트  (0) 2017.11.15
코딩카타  (0) 2017.11.15
댓글
댓글쓰기 폼