SDL_net 2.0多线程

时间:2015-08-06 19:30:31

标签: sdl sdl-2 sdl-net

在另一个线程(主线程除外)上调用SDL_net函数是否安全?它有什么规则吗?当我搜索它时,我找不到任何关于它的信息。

1 个答案:

答案 0 :(得分:1)

是的,这是安全的。实际上,某些操作应该在一个单独的线程中完成。

我查看了SDL_net的TCP部分。特别是对

的任何调用
  • SDLNet_ResolveHost,如果必须通过远程主机解析DNS查询
  • 连接到远程主机的SDLNet_TCP_Open,不仅仅是建立一个侦听套接字
  • SDLNet_TCP_Recv当且仅当TCP流上没有任何待处理字节时
  • SDLNet_TCP_Send
如果你想避免阻止渲染线程,错过的时间和不再响应的窗口,

必须在一个单独的线程上完成。

但是,应该避免两个或多个线程同时插入同一个套接字。确保线程正确地相互通信,以避免并发引起的错误。使用互斥锁,锁等来确保这一点。