Python Glossary English

Python 3.3+Linuxosфункция

os.sched_setaffinity

os — планировщик (sched)

Задаёт множество ядер CPU, на которых разрешено выполняться процессу (привязка к ядрам).

Синтаксис

os.sched_setaffinity(...)

Привязывает процесс к заданным ядрам — полезно для замеров производительности, чтобы результаты не скакали из-за переездов между ядрами. Потоки, созданные позже, наследуют привязку. Сузить набор можно без особых прав, а влиять на чужой процесс — только с правами на него.

Примеры

import os
print(os.sched_getaffinity(0))  # → ? только Unix: множество ядер, доступных текущему процессу (pid=0), например {0, 1, 2, 3}
os.sched_setaffinity(0, {0})  # → ? только Unix: процесс закреплён за ядром 0
print(len(os.sched_getaffinity(0)))  # → ? только Unix: 1 — честное число доступных ядер (точнее, чем os.cpu_count())
os.sched_setaffinity(0, {0, 1})  # → ? только Unix: вернули процессу два ядра
os.sched_setaffinity(0, set())  # → OSError: [Errno 22] Invalid argument — пустая маска запрещена

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности