SDL and C++11 threads



我正在在C 11中开发一个使用SDL作为库的应用程序。我计划为我的应用添加多线程支持。是否使用SDL_THREAD或STD ::线程有什么区别?

,除非您使用了专门需要SDL的线程句柄类型的SDL API的一部分,否则最好使用C 的std::thread。API更惯用(例如,构造函数允许您转发参数以启动函数),并且不会将代码与SDL提供的代码相关。

我提到句柄的原因是,如果您实际上需要通过SDL_Thread *,则无法查询当前线程的句柄。授予std::thread也没有提供此信息,但是由于接口更丰富,因此使用更有意义。

编辑:两个接口似乎都从Posix线程大量吸引,但除了一个例外。std::thread没有内置的取消功能。通常,您不想在没有任何清理的情况下杀死线程,但值得一提。

最新更新