c mutex 예제

뮤텍스가 끝나면 pthread_mutex_destroy (&m)라고도 부릅니다. 잠금 해제된 뮤텍스만 파괴할 수 있습니다. 소멸된 잠금에서 destroy를 호출하고, 초기화된 잠금을 초기화하고, 이미 잠긴 잠금을 잠그고, 잠금 해제 잠금 등의 잠금해제는 지원되지 않으며(적어도 기본 뮤텍스의 경우) 일반적으로 정의되지 않은 동작이 발생합니다. 나는 저자가 더 잘 할 수 있다고 생각합니다. 나는이 문서에서 몇 가지 문제를 참조하십시오. 내가 그것을 개선하기 위해 노력하자. 뮤텍스 또는 다른 동기화 메커니즘을 설명하기 전에 동기화 메커니즘이 필요한 이유를 설명해 보겠습니다. 뮤텍스는 다음 함수를 호출하여 잠금을 해제하고 파괴 할 수 있습니다 : @engeland : 왜 전역 변수를 사용하는 것이 잘못된 경우 int? 프로그래머가 나쁜 관행이라고 해서 뮤텍스로 보호할 수 있는 리소스의 나쁜 예가 아니라는 의미는 아닙니다. 히만슈가 정적 변수를 사용해야 하는가? 그는 할 수 있지만 다음 초보자에게 더 이해할 수있는 코드가 될 것인가? 아니요.

그리고 이것이 예제의 핵심입니다. 가능한 한 간단하게 만드십시오. 다른 한편으로는 전역 변수가 잘못된 프로그래밍 습관이라고 언급되었을 수도 있습니다. @chmurli: 전역 변수와 동일하면 단일 스레드 코드에 대한 주석이 표시됩니다. 이것은 뮤텍스 동기화의 총 단순화입니다. 전체 코드는 중요한 섹션의 일부이므로 보호됩니다. 이 경우는 물론 직렬로 작동합니다. pthread_mutex_lock 전에 또는 pthread_mutex_unlock 후 아무것도 추가하면 좋은 멀티 스레드 프로그램이 있습니다. @Himansu:이 좋은 예주셔서 감사합니다. 뮤텍스는 공유 리소스를 사용하기 전에 설정한 잠금이며 사용 후 릴리스됩니다.

잠금이 설정되면 다른 스레드가 잠긴 코드 영역에 액세스할 수 없습니다. 따라서 스레드 1이 공유 리소스에 액세스하지 않고 코드가 mutexes를 사용하여 스레드 1에 의해 잠겨있는 동안 스레드 2가 예약된 경우에도 스레드 2는 해당 코드 영역에 액세스 할 수 없습니다. 이렇게 하면 코드에서 공유 리소스의 동기화된 액세스가 보장됩니다. 예 – 그러나 자식 및 상위 프로세스는 가상 메모리를 공유하지 않으며 각 프로세스는 다른 프로세스와 독립적으로 뮤텍스를 갖습니다. 뮤텍스는 실행이 완료될 때까지 첫 번째 스레드의 실행을 보호한 다음 뮤텍스의 잠금을 해제하여 새 프로세스를 시작합니다. 이 기사주셔서 감사합니다! 난 그냥 내 강의의 스크립트를 읽고 실제로 Mutexes에 대해 아무것도 이해하지 못했다, 특히 그들을 사용하는 방법.

Este post foi publicado em Sem categoria em por .