c++ - 在 C++ 程序上同时运行不同的任务
问题描述
我是一名工业工程专业的学生,我想到了一个使用 ROS 的非常酷的应用程序。我知道这不是一个关于 ROS 的特定论坛,但由于我正在使用 C++ 编程,并且问题与 C++ 相关而不是 ROS,我相信这是一个很好的地方来问我的问题。
我的问题是我有一个 ROS 节点必须执行三个不同的任务。这三个任务同样重要,因此必须同时运行。我在 C++ 编程方面并不新,但我从未处理过这类问题。我通过互联网对多线程和并行编程进行了一些研究,但我仍然不知道它们之间的区别。
- 多线程和并行编程有哪些区别?
- 哪个可能是 C++ 程序的最佳选择?
- 如何在 C++ 程序上实现这些方法?
- 是否有任何指南可供开始使用此主题的人使用?
提前感谢您的帮助!
解决方案
“并行”或“并行计算”是指利用计算硬件资源的任何技术,该技术能够同时做比传统的单 CPU 计算机所能做的更多的事情。这是一个广泛的话题,涵盖了从现代多 CPU 桌面、服务器和移动平台到GPU 编程,再到诸如脉动阵列处理器和连接机器等尚未脱离大学实验室的深奥事物的方方面面。
“多线程”是几种流行的技术之一,它扩展了传统过程编程语言的功能,让我们在单个进程中同时发生多个不同的活动。并行是并发的一个子集。如果您拥有正确的硬件和操作系统,任何能够在单个进程中同时发生的活动都可能并行发生。
如何在 C++ 程序上实现这些方法?
推荐阅读
- python - PySpark ML LogisticRegression weightCol 是否实现了 sampleWeight 或 classWeight?
- ruby-on-rails - Rails form_with 问题:表单数据未保存在 Rails 的控制器实例中
- rust - 为匹配运算符借用可能未初始化的变量
- filter - DAX 优化 - CALCULATE、COUNTROWS、FILTER、RELATEDTABLE
- c++ - 有没有办法在 Visual Studio 中更改 C++ 函数的颜色?
- go - 类型更改未按预期运行
- arrays - delphi 在使用函数和数组时出错
- python - 在 Pytorch/Pysyft 中使用自定义模型进行联邦学习
- node.js - React hook - 如何将状态传递给子组件
- angular - 从 Angular 组件中移除 Output 属性值