Вы можете сделать это из Bash. Есть замечательная команда taskset
, с которой я познакомился в этом вопросе (вы также можете найти ценную дискуссию о том, как должен работать планировщик). Команда берет pid процесса и привязывает его к определенному процессору (процессорам).
taskset -c 0 -p PID
привязывает процесс с PID к процессору (ядру) с номером 0.
Какое отношение это имеет к темам? Каждому потоку присваивается идентификатор с теми же правами, что и у pid, также известный как «tid». Вы можете получить его с помощью gettid
системного вызова. Или вы можете посмотреть его, например, в программе top
, нажав H (некоторые процессы разделяются на множество, казалось бы, одинаковых записей с разными pids - это потоки).