操作系统实验——串行、多线程和线程池三种方式计算矩阵乘法
注:写实验报告的同学在复制代码的时候记得改一改变量名和函数!最好看懂了自己写一下!不要直接copy!太明显了~~
1.实验目的:以多线程(并行)、串行以及线程池三种形式计算矩阵乘法,统计分析三种方法所需要的时间,并根据公式speedup<=1/(s+(1-s)/n),计算出顺序执行占用比s.
2.对公式speedup<=1/(s+(1-s)/n)的解释:speedup=串行时间/并行时间,又称加速比,s是顺序执行占用比,也就是程序中必须串行(单线程)执行的部分,n是你的电脑的内核数,可通过设备管理器查看
3.实现思路:
1)定义两个较大的1024阶方阵和确定线程数量n(n从2-1024*1024均可以)
2)实现一个singleThread()函数,用来串行(直接)计算矩阵乘法
3)实现一个工作线程workThread,每个线程完成矩阵乘法运算工作的1/n,创建n个线程,用多线程计算矩阵乘法
4)声明一个线程池,将n个线程放入线程池中进行管理,用线程池进行矩阵乘法的运算
4.代码
工作线程类workThread: