SDL을 라이브러리로 사용하는 C++ 11에서 응용 프로그램을 개발하고 있습니다. 내 응용 프로그램에 대한 다중 스레드 지원을 추가 할 계획입니다. 내 응용 프로그램에서 SDL_Thread 또는 std :: thread를 사용할 지 여부에 차이가 있습니까?SDL 및 C++ 11 스레드
0
A
답변
1
SDL의 스레드 핸들 유형이 특별히 필요한 SDL API의 일부를 사용하지 않는 한 C++의 std::thread
을 사용하는 것이 좋습니다. API는 더 관용적입니다 (예 : 함수를 시작하기 위해 인수를 전달할 수있는 생성자). SDL에서 제공하는 코드에 해당 코드를 연결하지 않습니다.
내가 핸들을 언급하는 이유는 실제로 SDL_Thread *
을 전달해야 할 경우 현재 스레드의 핸들을 쿼리 할 방법이 없다는 것입니다. 부여 된 std::thread
은이 중 하나를 제공하지 않지만 인터페이스가 더 풍부하기 때문에 사용하는 것이 더 합리적입니다.
편집 : 두 인터페이스 모두 POSIX 스레드에서 많이 사용하는 것처럼 보이지만 한 가지 예외가 있습니다. std::thread
에 내장 된 취소 기능이 없습니다. 일반적으로 어떤 종류의 정리도없이 스레드를 죽 이길 원하지는 않지만 언급할만한 가치가 있습니다.
관련 문제
- 1. CMake SDL 2.0 및 C++ 11
- 2. C++ 11 스레드 대기
- 3. ... C++ 11 표준 : 스레드
- 4. C++ 11 스레드, 유효한 코드입니까?
- 5. 부스트와 C++ 11 스레드 호환성
- 6. C++ 11 스레드 오류 런타임
- 7. C++의 분리 스레드 11
- 8. 존재하는 클래스의 C++ 11 스레드
- 9. C++ 11 스레드 : 예외 람다
- 10. 스레드 안전 싱글은 C++ 11
- 11. C++ 11 시그널링 부모 스레드
- 12. C++ 11 std :: thread 및 C 시스템 스레드 (예 : pthreads)
- 13. Visual Express C++ (C++ 11 및 스레드 지원)
- 14. C++ 11 forwarddeclare 스레드, 뮤텍스, 크로노
- 15. C++의 스레드 11 클래스 구성원이 아닙니다.
- 16. C++ 11 난수 생성기의 스레드 안전
- 17. SDL 및 C++의 충돌
- 18. C++의 스레드 풀 및 실행 큐 11
- 19. 3 스레드 및 2 공유 리소스에 C++ 11 동기화 문제가
- 20. 스레드 안전 큐가있는 C++ 11 이벤트 루프
- 21. C++ 11 스레드 분리가 작동하지 않습니다.
- 22. C++ 11 스택 변수가있는 스레드 안전성
- 23. C++ 11 다중 스레드 병합 정렬
- 24. C++ 11 다중 스레드 병합 정렬
- 25. C++ 11 스레드, 메인 스레드에서 실행
- 26. std :: void가 아닌 함수의 스레드 (C++ 11)
- 27. std :: list를 수정하기위한 C++ 11 스레드
- 28. C++에서 스레드 시작 지연 11
- 29. 버그가있는 C++ 11 스레드 풀 예제
- 30. C++ 용 스레드 11, 새로 만들기
선택한 구현에 따라 SDL은 pthread와 같은 대상 시스템 특정 구현은 물론 C++ 스레드를 사용할 수 있습니다. 구체적인 사항이 문제에 중요하다면 SDL과 C++이하는 일을 분명히 살펴 봐야합니다. SDL은 아마도 예를 들어 스레드 스택 크기 (* 스레드 구현으로 C++ 스레드를 사용하지 않는 경우 *). – keltar