c++ - 使用 C++ 进行多任务处理。线程或不同的设计?

标签 c++

我一直使用脚本语言,例如 PHP,页面运行、运行完成并给出输出。但是,我想在 C++ 上做一些不同的事情,我需要对两个任务进行多线程处理。

首先,主线程应该运行(比方说)一个每 1 秒刷新一次的 CPU 温度计,第二个线程应该做其他事情。 (比如读取windows目录下的所有目录。)

话虽如此;

  1. 使用线程是我唯一的机会还是我可以使用不同的编程概念来完成这项任务?

  2. 尤其是在游戏中,有大量的东西在后台运行。例如,NPC/怪物的 AI、图形引擎、物理引擎、玩家移动、键盘交互等。它们在单个进程中工作,那么它是如何处理的?

最佳答案

创建一个线程来读取 cpu 温度计,并在每秒结束时读取目录。多线程没有太多好处,但管理线程可能会有些痛苦。您可以将您的TASK 放入列表中并以第二种方式安排它们。

我不确定游戏内容,但我相信他们会在循环中对项目/任务进行分类并安排/检查/处理。一些线程是为一些专用任务创建的,如套接字通信、GUI 渲染等,但为每个项目创建一个专用线程,表示 creep 已结束。

我的建议是,如果可以在一个线程中完成,就不要轻易将多线程引入您的应用程序。多线程会产生其他方面的影响,如同步问题、线程管理问题等。

关于c++ - 使用 C++ 进行多任务处理。线程或不同的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261160/

相关文章:

c++ - 如何从 YUV 图像流生成 VBR 视频?

c++ - 无法弄清楚如何执行此代码

c++ - 运行提升时如何创建不需要提升编辑的文件?

c++ - 最小化、最大化按钮无缘无故消失

c++ - 对不同类型使用shared_ptr

c++ - 即使设置为 PTHREAD_PROCESS_SHARED,Pthread 条件变量也不会发出信号

c++ - 是否有指向任何内容的文件指针 (FILE*)?

C++ 多线程教程

c++ - 我应该使用前向声明将类移动到文件末尾吗?

C++ 类的复制构造函数