그래서 USB HID 장치를위한 새로운 소프트웨어 인터페이스를 설계하고 있으며 동시성 보호에 대한 질문이 있습니다. 필자는 디자인에서 다른 스레드에서 호출 될 수 있으므로 ReadFile 및 WriteFile (잘못된 경우 수정하십시오) 호출에 동시성 보호를 추가해야한다고 가정합니다.동시성을 위해 정적 부울 대 임계 섹션 사용
이전에는 스레드 안전성을 구현하기 위해 정적 부울을 사용하는 경우가있었습니다. 부울이 코드를 입력하기에 안전 할 때까지 1ms 대기 루프를 추가했습니다. CriticalSections도 사용했습니다. CriticalSections가 정적 bool을 사용하는 것보다 근본적으로 더 나은지 아무에게 말해 줄 수 있습니까? 대기 루프를 코딩해야 할 필요는 없다는 것을 알지만, VC의 폴링 속도는 잠금 상태를 확인하는 데 어떤 역할을합니까? OS를 개선하는 어떤 방법으로 OS에 푹 빠져 있습니까? 동시성 검사에 bool을 사용하는 것이 항상 안전하지는 않습니까?
표준 라이브러리에 스레드 지원을 추가하면 std :: mutex와 같은 것을 사용해야합니다. – Rastaban
Nah, 뮤텍스가 너무 비쌉니다. CriticalSections가해야합니다. 나는 표준 라이브러리에서 그들을 찾을 것이다. – Ian
std :: mutex는 반드시 윈도우 뮤텍스가 아니지만 CS로 구현 될 수 있습니다. – Ian