适用专业:
适用于计算机、网络工程、软件工程等相关专业,其他专业选做。
实验目的:
(1)了解使用Python标准库multiprocessing编写多进程程序的方法。
(2)理解进程概念以及进程调度的工作原理。
(3)理解进程池的概念及其工作原理。
(4)理解并熟练使用Python标准库time中的方法测试代码运行时间。
(5)根据需要熟练编写不同形式的素数判断函数。
(6)了解多处理器和多核的概念。
实验内容:
(1)编写函数判断一个数字是否为素数,然后创建进程池使用进程池的map()方法把该函数映射到指定范围内的数字,使用内置函数sum()统计有多少素数。同时,使用内置函数map()和sum()完成同样任务,比较两种方法的速度。
(2)调整进程池大小,即工作进程的数量,观察两种方法速度的变化。例如,上面的代码运行结果为:
664579
60.04925322532654
664579
26.993717908859253
把进程池大小改为5之后,运行结果为:
664579
61.76579570770264
664579
110.45850372314453
尝试分析出现这种情况的原因。
(3)打开任务管理器,观察程序运行过程中对CPU资源占用的变化情况。下面是代码运行5秒和80秒时任务管理器的截图,尝试分析出现这种情况的原因。