我正在制作一个小型 2d 在线游戏,目前我在主线程中完成了绘图、角色移动和套接字处理。我认为为这些东西创建一个自己的线程会更方便,特别是对于套接字处理。
这是我的第一个多线程应用程序,所以我应该基本上只用这个来创建线程吗?我读到我只是使用互斥锁或临界区来防止两个线程同时访问数据,我应该使用哪个?
我正在制作一个小型 2d 在线游戏,目前我在主线程中完成了绘图、角色移动和套接字处理。我认为为这些东西创建一个自己的线程会更方便,特别是对于套接字处理。
这是我的第一个多线程应用程序,所以我应该基本上只用这个来创建线程吗?我读到我只是使用互斥锁或临界区来防止两个线程同时访问数据,我应该使用哪个?
是的,您应该使用方法创建新线程CreateThread
。不要忘记在每个应该处理消息的线程中创建一个消息泵(例如异步套接字处理)。
至于互斥锁与临界区:临界区会更合适,因为您只需要同步一个进程的线程。有关更多详细信息,请参阅互斥锁和临界区有什么区别?.
使用消息在线程之间进行通信也很方便(参见PostThreadMessage)。