c++ - 如何使用多核而不是多线程进行编程?

标签 c++ multithreading raspberry-pi

我正在做一个项目(硬件:RaspberryPI 3B+),它有大量的计算和并行处理。目前,我注意到代码性能存在某种滞后。因此,我一直在寻找有效的方法来改进我的代码及其性能。

目前,我正在使用 C 语言(因为我可以轻松访问和操作较低级别的驱动程序)并开发我自己的函数、库和驱动程序集,它们比任何其他预定义或现成的库运行得更快或插件。

现在,我想使用独立的内核来执行相应的任务,而不是基于软件的多线程 (Pthread)。那么,对于如何使用 RaspberryPI 的不同内核,有什么建议或指南吗?

此外,如何检查 CPU 利用率以选择最佳内核来执行特定任务?

感谢问候, 阿提夫谢赫

最佳答案

在 C/C++ 级别,您无权访问哪个 CPU 核心将运行哪个线程。只需使用 C++ 11 标准线程,让操作系统调度程序决定哪个线程在何处运行。

也就是说,Linux 有任务集工具来检查线程亲缘关系,还有 sched_setaffinity () 函数。

关于c++ - 如何使用多核而不是多线程进行编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369706/

相关文章:

c++ - 在 VC++ 中解决 hid.lib "unresolved external symbol"链接器错误

c++ - 读取/写入流时丢失数据

c++ - 如何在不同的线程中执行 QTcpSocket?

linux - 我的 IP 动态变化 如何获得最新的 IP 更新?

python - 通过蓝牙在 iOS 应用程序和 Raspberry Pi 之间进行通信

c++ - STL 容器和大量数据

c++ - 获取 IE 扩展中的 IE 扩展列表

Python 和线程 : instance has no __call__ method

java - 我如何分析 Java 中的线程?

Docker-entrypoint.sh 为带有 golang 的 ARM 镜像生成 "not found"