我是一名工业工程学生,因此我想到了使用ROS的一个非常酷的应用程序。我知道这不是一个有关ROS的特定论坛,但是由于我使用C ++进行编程,而且这个问题与ROS相比与C ++的关系更大,所以我认为这是一个很好的提出问题的地方。
我的问题是我有一个ROS节点,必须执行三个不同的任务。这三个任务同等重要,因此必须同时运行。我对C ++编程并不陌生,但是我从未处理过此类问题。我通过互联网做了一些研究 多线程和并行编程,我仍然不知道彼此之间的区别。
在此先感谢您的帮助!
答案 0 :(得分:0)
多线程描述了使一个程序并行运行多个任务的概念。
并行编程在您的代码中使用了一个并行概念(可能是多线程)。
您的问题2无法回答,因为一个使用另一个。
是有关如何使用并行编程来提高代码性能的良好指南。答案 1 :(得分:0)
“并行”或“并行计算”是指利用计算硬件资源的任何技术,该技术能够同时完成比传统单CPU计算机更多的工作。这是一个广泛的主题,涵盖了从现代多CPU台式机,服务器和移动平台到GPU programming到systolic array processors和connection machines等深奥的事物,这些事物尚未从他们的大学实验室中逃脱出来
“多线程”是几种流行的技术之一,这些技术扩展了常规过程编程语言的功能,使我们可以在单个过程中发生 concurrently 多个不同的活动。并行是并发的子集。如果您具有正确的硬件和操作系统,那么可以在单个进程中同时发生的任何活动都可以并行发生。
如何在C ++程序上实现这些方法?