Python Glossary English

Python 3.3+Linuxosфункция

os.sched_getaffinity

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

Возвращает множество ядер CPU, на которых разрешено выполняться процессу.

Синтаксис

os.sched_getaffinity(...)

Возвращает множество номеров процессоров, на которых процессу разрешено работать, — с учётом ограничений контейнера и taskset. Поэтому len(os.sched_getaffinity(0)) точнее os.cpu_count для размера пула. Ноль вместо PID означает текущий процесс. С 3.13 переносимый ответ даёт os.process_cpu_count.

Примеры

import os
print(os.sched_getaffinity(0))   # → ? только Unix: множество разрешённых ядер текущего процесса, например {0, 1, 2, 3}
cores = len(os.sched_getaffinity(0)); print(cores)   # → ? только Unix: сколько ядер реально доступно процессу, например 4
print(os.cpu_count())   # → ? всего ядер в системе, например 8 — маску процесса не учитывает, в контейнере число завышено
os.sched_setaffinity(0, {0}); print(os.sched_getaffinity(0))   # → ? только Unix: {0} — после сужения маски остаётся одно ядро
print(os.sched_getaffinity(10 ** 7))   # → ProcessLookupError: процесса с таким pid нет

См. также

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

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