【发布时间】:2012-12-09 20:05:48
【问题描述】:
我的游戏使用多线程架构,线程布局如下:
- Main:负责高层架构
- 资源:负责异步文件 I/O
- 网络:负责阻塞网络 I/O
- 工人:做 CPU 密集型工作
现在,有 (hardware_threads - 3) 个工作线程,每个未使用的硬件单元一个,但我想通过将“资源”和“网络”线程组合到一个单元上来添加一个,因为两个线程都是会花很多时间闲置。
- 这在 C++ 中是否可以使用 boost::thread 实现?
- 这是否值得优化?
【问题讨论】:
-
“这是否值得优化?” - 可能不是。
-
std::thread 在标准中。考虑使用它。
-
std::thread 在 Windows 系统上无法正常工作。无论如何,它在功能上与 boost::thread 相同,所以如果我需要切换很容易。
-
std::async是要走的路。
标签: c++ multithreading boost architecture game-engine