Answer
교착상태 : 두 개 이상의 스레드가 서로가 소유한 세마포를 기다리는 상황에서 데드락 발생가능성 있음
기아 : 세마포를 사용하여 스레드의 우선순위를 제어하는 경우, 우선순위가 낮은 스레드가 계속해서 세마포를 획득하지 못하고 대기하는 상황이 발생하면 기아가 발생할 수 있음
2Depth
Question
멀티스레딩 환경에서 발생할 수 있는 동기화 문제는 무엇이 있을까요?
Answer
생산자-소비자 문제 : 공유된 버퍼나 큐와 같은 자원을 생산자(Producer) 스레드가 생성하고, 소비자(Consumer) 스레드가 소비하는 상황에서 발생한다.
1. 상호배제의 문제(생산자들과 소비자들의 동시적 공유버퍼 사용에 대한 상호배제)
2. 비어있는 공유버퍼 문제 - 소비자가 비어있는 공유버퍼를 읽는 경우
3. 가득찬 공유버퍼에 생산자가 데이터를 공급하는 경우
위와 같은 경우에 발생할 수 있으며 뮤텍스, 세마포 등을 통해 해결할 수 있다.
1Depth
세마포에서 발생할 수 있는 문제점은 무엇이 있을까요?
Answer
교착상태 : 두 개 이상의 스레드가 서로가 소유한 세마포를 기다리는 상황에서 데드락 발생가능성 있음기아 : 세마포를 사용하여 스레드의 우선순위를 제어하는 경우, 우선순위가 낮은 스레드가 계속해서 세마포를 획득하지 못하고 대기하는 상황이 발생하면 기아가 발생할 수 있음
2Depth
멀티스레딩 환경에서 발생할 수 있는 동기화 문제는 무엇이 있을까요?
Answer
생산자-소비자 문제 : 공유된 버퍼나 큐와 같은 자원을 생산자(Producer) 스레드가 생성하고, 소비자(Consumer) 스레드가 소비하는 상황에서 발생한다.1. 상호배제의 문제(생산자들과 소비자들의 동시적 공유버퍼 사용에 대한 상호배제)
2. 비어있는 공유버퍼 문제 - 소비자가 비어있는 공유버퍼를 읽는 경우
3. 가득찬 공유버퍼에 생산자가 데이터를 공급하는 경우
위와 같은 경우에 발생할 수 있으며 뮤텍스, 세마포 등을 통해 해결할 수 있다.
Additional Explain