我正在Ubuntu 7.9上做实验。我的 C++ 应用程序使用 pthread_setaffinity_np 将一个线程固定到一个核心(例如 18,来自隔离的 cpu 列表,从 /sys/devices/system/cpu/isolated 中选取)。
当我的应用程序运行时,top 确实确认核心 18 为 100%,并且我的应用程序线程正在那里运行。 但是,我可以多次运行以下命令,这表明多个用户空间线程也可以固定到核心 18。顶部证实了这一点。
taskset -c 18 sleep 200000 &
我很好奇为什么允许这样做?给定的核心 18 在隔离的 cpu 列表中。
谢谢, 弗兰克