ฉันใส่ฟังก์ชั่นต่อไปนี้ในโปรแกรมของฉันใน python 2.6 และเรียกฟังก์ชัน windows เครื่องของฉันมีสองแกนเท่านั้นดังนั้นคุณอาจต้องเปลี่ยนส่วนนั้น ความคิดเห็นจะบอกวิธีดูว่าความสัมพันธ์ปัจจุบันคืออะไร ใช้งานได้ "ตามสภาพ" สำหรับเครื่องแกนเดียวหากคุณตั้งค่าหรือตั้งค่าเริ่มต้นเป็นรูปแบบ 1
def setaffinitymask(pid = None, mask = 1):
""" Set The Affinity Mask of a Windows Process. Affinity Mask is a value between 1-3 where
1 is for core 0, 2 is for core 1, 3 is for both cores (it is a bitmap)
Default sets the Affinity Mask to core 0 only
python process can take any valid process ID. """
import win32api, win32process, win32con
if pid == None:
pid = win32api.GetCurrentProcessId()
if mask == None:
mask = 1
if mask < 1 or mask > 3:
mask = 1
print 'process affinity mask out of range [1..3] setting it to 1'
handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid)
# see what mask is currently set to
# processAffinityMask, systemAffinityMask = win32process.GetProcessAffinityMask(handle)
# print 'process affinity mask = ', processAffinityMask, ', system affinity mask = ', systemAffinityMask
# set affinity for process to mask value
win32process.SetProcessAffinityMask(handle, mask) # 1=core 0, 2=core 1, 3=both
processAffinityMask, systemAffinityMask = win32process.GetProcessAffinityMask(handle)
#print 'process affinity mask = ', processAffinityMask, ', system affinity mask = ', systemAffinityMask