세마포어와 뮤텍스라는 말을 들어보신 적이 있으신가요??
모바일 환경뿐만아니라 최근 개발 패러다임을 보면 동시성 프로그래밍 패러다임에 있는데 공유 자원을 안전하게 사용하기 위해서는 상호배제 (접근을 막는 것) 방법이 필요합니다.
뮤텍스와 세마포어는 이를 위한 동기화 도구로 각각 다른 방식으로 제공합니다.
이에대해서 한번 알아보도록 해보죠!
세마포어
어떤 자원을 이용할 때 하나의 값을 이용해 사용할 때는 -1 사용이 끝나면 +1 을 하여 상호배제 시킨다.
값이 0일 경우에는 값이 존재 할 때까지 대기한다.
즉 공유 자원에 접근 할 수 있는 프로세스 및 스레드의 값(카운트)을하여 상호 배제 방법
뮤텍스
어떤 자원을 이용하기 위해서는 유일한 Key Object가 필요하며 이를 가진 프로세스 혹은 스레드만 자원을 이용 할 수 있다.
즉 스레드와 프로세스에 의해 소유할 수 있는 Key Driven 상호 배제 방법
참고링크
'개발 > 개발' 카테고리의 다른 글
[iOS] - Responder Chain (0) | 2022.08.04 |
---|---|
[iOS] - Project & Target 개념 (0) | 2022.08.03 |
[SwiftUI] - TabView 어떻게 만들지? (0) | 2022.07.26 |
[iOS] - iOS 에서 딥링크가 뭘까? (Firebase 기반으로) (0) | 2022.07.25 |
[iOS] - MVVM 아키텍처 개선해보기 (0) | 2022.06.29 |