본문 바로가기
[Java] Semaphore 에 대해 알아보자. [Java] Semaphore 에 대해 알아보자. https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html -자바 병렬 프로그래밍을 통해 학습한 내용에도 (http://aroundck.tistory.com/867) 세마포어 내용이 있지만, 이번에 실 사용하면서 semaphore 에 더 깊이 알아봐야 겠다는 생각이 들어 학습하면서 몰랐던 내용이나 중요한 것들 위주로 글을 정리해본다. Overview Counting Semaphore 는 특정 자원이나 특정 연산을 동시에 사용하거나 호출할 수 있는 스레드의 수를 제한하고자 할 때 사용한다.Semaphore 클래스는 가상의 Permit 을 만들어 내부 상태를 관리하며, 클래스를 .. 2018. 12. 20.
[Java Concurrency] 동기화 클래스 구현 14.1. 상태 종속성 관리 - 병렬 객체의 상태 종속적인 메소드는 선행 조건이 만족하지 않았을 때 오류가 발생하는 문제에서 비켜날 수도 있겠지만, 비켜나는 일보다는 선행 조건을 만족할 때까지 대기하는 경우가 많아진다. - 자바에 내장된 조컨 큐 메커니즘(condition queue mechanism)은 실행 중인 스레드가 특정 객체가 원하는 상태에 진입할 때까지 대기할 수 있도록 도와주며, 원하는 상태에 도달해서 스레드가 계속해서 실행할 수 있게 되면 대기 상태에 들어가 있던 스레드를 깨워주는 역할도 담당한다. - 일단 선행 조건을 만족하지 않았다면 락을 다시 풀어줘야 다른 스레드에서 상태 변수를 변경할 수 있다. 만약 락을 풀어주지 않고 계속 잡고 있다면 다른 스레드에서 상태 변수의 값을 변경할 수 .. 2017. 5. 8.
반응형