현재 멀티 스레딩 및 잠금, 세마포어 및 조건부 변수와 같은 상호 배제 구조의 사용을 배우고 있습니다.멀티 스레딩 및 상호 배제 기본형을 이해하는 방법
3 가지 상호 배타성을 사용할 때 가장 좋은시기는 언제입니까? 이러한 구조를 사용하는 실제 사례가 있습니까?
힌트가 도움이 될 것입니다. 미리 감사드립니다.
현재 멀티 스레딩 및 잠금, 세마포어 및 조건부 변수와 같은 상호 배제 구조의 사용을 배우고 있습니다.멀티 스레딩 및 상호 배제 기본형을 이해하는 방법
3 가지 상호 배타성을 사용할 때 가장 좋은시기는 언제입니까? 이러한 구조를 사용하는 실제 사례가 있습니까?
힌트가 도움이 될 것입니다. 미리 감사드립니다.
기본적으로 다양한 수준의 정교함과 성능을 제공합니다. 우선,이 모든 잠금 방법에 변형이 있음을 지적하고 어떤 변형을 언급하는지 가정해야합니다.
잠금 관리자는 가장 정교한 경향이 있습니다. 괜찮은 잠금 관리자는 교착 상태를 감지하고 위반할 수 있습니다. 잠금 관리자는 일반적으로 데이터베이스 액세스를 동기화하는 데 사용됩니다. 잠금 관리자 기능에는 많은 변형이 있습니다.
세마포어에는 여러 가지 변형이 있습니다. 단일 액세스, 다중 액세스, 단일/다중 액세스 (예 : 1 개의 작성자 또는 여러 개의 독자)를 처리하도록 설정할 수 있습니다. 오버 헤드 수준은 잠금 관리자보다 훨씬 적습니다. 그러나 응용 프로그램은 자체적으로 교착 상태를 처리해야합니다.
조건 변수는 가장 간단한 잠금 방법 인 경향이 있습니다. 항상 Test와 Set Interlocked 명령어와 같이 잠금을 위해 설계된 하드웨어 명령어에 의존합니다. 이것은 종종 커널 리소스에 사용되는 스핀 잠금에 사용됩니다.
귀하의 질문은 너무 광범위합니다. 교과서를 읽거나 각 프리미티브에 대한 위키 피 디아를 읽는 것이 더 나을 때 유용합니다. –
내가 제일 좋아하는'pthreads' 튜토리얼. 'pthreads '를 사용하지 않더라도 개념은 동일합니다 : https://computing.llnl.gov/tutorials/pthreads/ – yano
정보를 제공해 주셔서 감사합니다! – susanc