적어도 하나의 스레드를 호출하는 클래스가 있습니다. 클래스는 많은 스레드를 가질 수 있습니다. 이 스레드는 클래스의 정적 멤버를 호출해야합니다. 정적 멤버를 호출 할 때마다 뮤텍스를 사용해야하므로 다른 스레드가 동시에 멤버를 호출 할 수 없습니까? 클래스의 모든 정적 멤버 함수에 동일한 뮤텍스 변수를 사용할 수 있습니까? pthreads 라이브러리를 사용하고 있습니다.정적 클래스 멤버 함수에 뮤텍스 사용
1
A
답변
0
이 질문은 복잡하고 오래된 멀티 스레딩 질문이며 직접적인 대답이 아닙니다. 실제로 사용 패턴에 따라 다릅니다.
- 정적 멤버에 많은 액세스가 있습니까?
- 이들 멤버는 여러 스레드가 한 번에 동시에 액세스 할 수 있습니까 (단 몇 명이 아닌)?
- 가장 많이 사용되는 정적 멤버는 무엇입니까?
- 여러 정적 멤버가 함께 사용됩니까?
- 작업에 주로 읽기가 포함되어 있습니까?
이러한 질문에 대한 답변을 통해 적용 할 솔루션을 결정할 수 있습니다. 예를 들어, 처리량이 인 경우 단일 뮤텍스가 더 효율적일 수 있습니다. 대기 시간을으로 최소화하려면 독립 멤버 (다른 멤버와 함께 사용할 필요가없는 멤버)에 대한 여러 뮤텍스가 스레드 간의 경합을 최소화하는 데 도움이됩니다. 독서가 주된 행동이라면 뮤텍스조차 원하지 않을 수도 있습니다 - pthread_rwlock
을 확인하십시오.
관련 문제
- 1. 클래스에서 정적 뮤텍스 사용
- 2. 비 정적 멤버 함수에 대한 C++ 함수 포인터 (클래스 멤버)
- 3. 인라인 멤버 함수에 사용되는 정적 전역 변수
- 4. C++ 클래스 멤버 함수에 '정적'이 있습니까?
- 5. 클래스 멤버 함수 내부에서 정적 함수에 액세스하는 방법?
- 6. 정적 클래스 멤버 선언 오류
- 7. 개인 멤버 함수에 익명 클래스 전달
- 8. C++ : 클래스 외부에서 public 멤버 함수에 액세스
- 9. 클래스 인스턴스를 전달하지 않고 정적 멤버 함수에서 비 정적 멤버 함수를 호출하는 방법
- 10. 과부하가 걸린 템플릿 멤버 함수에 대한 const 포인터의 정적 배열
- 11. [Ruby] : 클래스 인스턴스 멤버 값을 다른 클래스 함수에 전달
- 12. Python에서 상속되었지만 공유 (정적) 클래스 멤버
- 13. 클래스 템플릿의 정적 함수 포인터 멤버
- 14. 멤버 함수에 대한 참조?
- 15. 파생 된 유형에 클래스의 정적 멤버 사용?
- 16. 정적 멤버 함수
- 17. 정적 멤버 및 상속
- 18. 비 정적 멤버 함수에 대한 포인터를 사용하여 콜백 구현
- 19. MooTools에서 정적 멤버 상속
- 20. 많은 뮤텍스 잠금 사용
- 21. 패키지 개인 정적 멤버 클래스 대 패키지 전용 클래스
- 22. C++ 정적 멤버
- 23. 정적 클래스 멤버의 올바른 사용
- 24. 단일 사용 된 클래스 대 '정적 클래스'
- 25. 정적 대 멤버 변수
- 26. CURLOPT_WRITEFUNCTION 멤버 함수에 대한 포인터
- 27. 보호 된 정적 멤버 변수
- 28. 클래스 멤버
- 29. 자바 정적 멤버 메모리 누수
- 30. 정적 멤버 함수의 로컬 변수