연관 게시물
Thread Safe
스레드 안전(thread safety)은 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가
여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다.
보다 엄밀하게는 하나의 함수가 한 스레드로부터 호출이 되어 실행중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수 수행 결과가 올바로 나오는 것으로 정의한다.
다음과 같은 구현 방법들이 있다.
재진입성(Re-entrancy)
어떤 함수가 한 스레드에 의해 호출되어 실행중일 때, 다른 스레드가 그 함수를 호출하더라도 그 결과가 각각에게 올바로 주어져야 한다.
상호 배제(Mutual exclusion)
공유자원을 꼭 사용해야 할 경우 해당 자원의 접근을 세마포어 등의 락으로 통제한다.
스레드 지역 저장소(Thread-local storage)
공유 자원의 사용을 최대한 줄여 각각의 스레드에서만 접근 가능한 저장소들을 사용함으로써 동시 접근을 막는다.
원자 연산(Atomic operations)
공유 자원에서 접근할 때 원자 연산을 이용하거나, 원자적으로 정의된 접근 방법을 사용함으로써 상호 배제를 구현할 수 있다.
스레드부터 시작해서 CS 지식을 쌓아나갈 수 있길..
화이팅~
참조
https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_%EC%95%88%EC%A0%84
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!