새로운 게시물이 작성되었습니다 => https://server-technology.tistory.com/479현재 글과 새로운 게시물 둘 다 읽어보시면 도움이 될 것이라 생각합니다. 뮤텍스락: 공유 자원 1개에 대하여 오직 하나의 스레드만이 접근할 수 있도록 하는 상호 배제(Mutual Exclusion) 기법이다. 세마포어: 공유 자원 n개에 대하여 여러 스레드가 동시에 접근할 수 있도록 n개의 자원을 제어한다. 뮤렉스락(Mutex Lock)1개의 공유 자원에 1개의 스레드 또는 프로세스만 접근할 수 있도록 제어한다. 이를 상호 배제(Mutual Exclusion)라고 한다. 공유 자원을 사용하고 있는 스레드(또는 프로세스)는 Key를 가지고 있다. Key를 가지고 있는 스레드는 공유 자원을 사용하고 ..
멀티 스레딩 환경에서 데이터의 일관성과 정확성을 보장하기 위한 개념이다. 여러 스레드가 동시에 같은 데이터에 접근할 때 발생할 수 있는 문제를 방지하기 위한 다양한 기법이 존재한다.Thread Safe멀티 스레드 프로그래밍 환경에서 함수나 변수, 객체에 여러 스레드가 동시에 접근이 발생해도 프로그램에 문제가 발생하지 않는 것을 의미한다.즉, 하나의 스레드로부터 실행 중인 함수가 있을 때, 다른 스레드가 해당 함수를 사용하더라도 각 스레드에서 호출한 함수의 결과가 올바르게 출력되는 것을 의미한다. Thread Safe를 위한 4가지 방법Mutual Exclustion (상호 배제)Atomic Operation (원자 연산)Thread-Local Stroage (스레드 지역 저장소)Re-Entrancy (재..
식사하는 철학자 문제식사하는 철학자 문제는 교착 상태를 설명하기 위해서 사용되는 문제입니다. 5명의 철학자가 존재하고 왼쪽과 오른쪽에 포크가 존재합니다. 앞에 놓인 음식을 먹기 위해서는 양손에 포크를 가지고 있어야 합니다. 단, 조건이 존재합니다.왼쪽 포크를 사용할 수 있다면 집어든다.오른쪽 포크를 사용할 수 있다면 집어든다.왼쪽과 오른쪽 포크 모두 집었다면 앞에 놓인 음식을 먹을 수 있다.식사가 끝나면 오른쪽 포크를 내려놓는다.오른쪽 포크를 놓은 후 왼쪽 포크를 놓는다.단순히 모든 철학자가 양손에 포크를 들어 식사를 하면 될 것 같습니다. 그러나 모든 철학자가 포크를 사용하려고 하면 문제가 발생합니다. 모두가 왼쪽 포크를 집게 된다면 어느 누구도 오른쪽 포크를 집을 수 없게 됩니다. 각자 오른쪽 포..