老师,我的电脑配置是8核16线程的,我把进程池设置为17个,每个进程sleep(2),视频老师说进程池里的数量不能随便写,最多就是自己电脑的cpu数,我这明显超过电脑cpu了,但是感觉17个进程是同时完成的。
from multiprocessing import Pool, Process
from time import sleep
def func1(name):
a=0
print(f"进程{name}的工作")
for i in range(1000000):
a+=i
print(a)
sleep(2)
if __name__ == '__main__':
pool = Pool(17)
pool.apply_async(func=func1, args=("xue1",))
pool.apply_async(func=func1, args=("xue2",))
pool.apply_async(func=func1, args=("xue3",))
pool.apply_async(func=func1, args=("xue4",))
pool.apply_async(func=func1, args=("xue5",))
pool.apply_async(func=func1, args=("xue6",))
pool.apply_async(func=func1, args=("xue7",))
pool.apply_async(func=func1, args=("xue8",))
pool.apply_async(func=func1, args=("xue9",))
pool.apply_async(func=func1, args=("xue10",))
pool.apply_async(func=func1, args=("xue11",))
pool.apply_async(func=func1, args=("xue12",))
pool.apply_async(func=func1, args=("xue13",))
pool.apply_async(func=func1, args=("xue14",))
pool.apply_async(func=func1, args=("xue15",))
pool.apply_async(func=func1, args=("xue16",))
pool.apply_async(func=func1, args=("xue17",))
pool.close()
pool.join()