linux - 不同 CPU 上的多线程应用程序

标签 linux arm cpu multicore rtos

例如,假设有一个在单核 CPU 上运行的嵌入式应用程序。然后将该应用程序移植到多核 CPU 上。该应用程序会在单核还是多核上运行? 更具体地说,我对 ARM CPU(但不仅限于)和工具链细节感兴趣。 G。标准 C/C++ 库。 这个问题的意图是:CPU 有责任“决定”在多核或编译器工具链、开发人员和特定库的标准平台上执行吗?再一次,我也对其他系统的趋势感兴趣。 有许多应用程序和 RTOS(例如 Linux)在不同的 CPU 上运行但架构相同,这是否意味着它们的编译方式不同?

最佳答案

一般来说,单线程代码总是在一个内核上运行。要利用多核,您需要拥有多进程、多线程或两者兼而有之。

您的编译器在这里无能为力。这是架构方面的考虑。

例如,如果您有多个线程,大多数多核系统将在任何可用的内核上运行它们,前提是您正在运行的操作系统经过正确编译以支持多线程。运行仅编译为单核的操作系统显然会限制您在此处的选择。

关于linux - 不同 CPU 上的多线程应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37167486/

相关文章:

c++ - 这个 "denormal data"是关于什么的? - C++

linux - 在 Linux 上安装 lispbuilder-SDL 时出现问题。 - "Don' t 知道如何要求 ASDF-INSTALL"

java - jnetpcap java.lang.UnsatisfiedLinkError :/usr/lib/libjnetpcap. so : libpcap. so.0.9: 无法打开共享对象文件: 没有这样的文件或目录

linux - ARM 上的程序找不到共享库,而 ldconfig 找到它

assembly - ARM 汇编循环

linux - 如何在 Linux 中监控一个进程的 CPU、内存和时间

c - 测量矩阵乘法参数的程序错误

linux - pkill 不会杀死超过给定进程的直接后代的进程

python - 运行 django 本地服务器而不是在 shell 别名中打开 chrome 页面

linux - libelf 破坏 ARM elf 二进制文件