Python os.sched_setaffinity() - 设置指定进程id所指示的进程的CPU关联掩码

Python os.sched_setaffinity()

Python中的os.sched_setaffinity()方法用于设置指定进程id所指示的进程的CPU关联掩码。进程的CPU亲和性掩码决定了它可以在哪些CPU上运行。

注意:此方法仅在某些UNIX平台上可用。

语法:os.sched_setaffinity(pid, mask)

参数:

pid:需要设置CPU亲和性掩码的进程id。进程的CPU亲和性掩码决定它可以在哪些CPU上运行。

pid为0表示调用进程。

mask:一个由整数组成的可迭代对象,表示进程应该被限制到的cpu集合。

返回类型:此方法不返回任何值。

示例1

使用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}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程