Python| os.sched_setaffinity() 方法
Python中的OS 模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用操作系统相关功能的可移植方式。
Python中的os.sched_setaffinity()
方法用于设置指定进程 id 指示的进程的 CPU 亲和掩码。一个进程的 CPU 关联掩码决定了它有资格运行的 CPU 集。
注意:此方法仅在某些 UNIX 平台上可用。
Syntax: os.sched_setaffinity(pid, mask)
Parameter:
pid: The process id of the process whose CPU affinity mask is to be set required. Process’s CPU affinity mask determines the set of CPUs on which it is eligible to run.
A pid of 0 represents the calling process.
mask: An iterable of integers representing the set of CPUs to which the process should be restricted.
Return Type: This method does not return any value.
代码: os.sched_setaffinity() 方法的使用
# Python program to explain os.sched_setaffinity() method
# importing os module
import os
# Get the number of CPUs
# in the system
# using os.cpu_count() method
print("Number of CPUs:", os.cpu_count())
# Get the set of CPUs
# on which the calling process
# is eligible to run. using
# os.sched_getaffinity() method
# 0 as PID represents the
# calling process
pid = 0
affinity = os.sched_getaffinity(pid)
# Print the result
print("Process is eligible to run on:", affinity)
# Change the CPU affinity mask
# of the calling process
# using os.sched_setaffinity() method
# Below CPU affinity mask will
# restrict a process to only
# these 2 CPUs (0, 1) i.e process can
# run on these CPUs only
affinity_mask = {0, 1}
pid = 0
os.sched_setaffinity(0, affinity_mask)
print("CPU affinity mask is modified for process id % s" % pid)
# Now again, Get the set of CPUs
# on which the calling process
# is eligible to run.
pid = 0
affinity = os.sched_getaffinity(pid)
# Print the result
print("Now, process is eligible to run on:", affinity)
输出:
Number of CPUs: 4
Process is eligible to run on: {0, 1, 2, 3}
CPU affinity mask is modified for process id 0
Now, process is eligible to run on: {0, 1}
参考:
- https://文档。 Python.org/3/library/os.html#os.sched_setaffinity
- https://linux.die.net/man/2/sched_getaffinity