多线程编程实现矩阵乘法 一、实验目的 通过实验,熟悉基于Win32 线程库和Pthread 线程库的编程环境,掌握利用Windows API 和 Pthread API 进行多线程编程的方法,进一步加深对线程概念以及多线程编程相关事项的理解
二、实验内容 1
在 Windows操作系统上,利用Windows API编写应用程序实现矩阵乘法
在 Linux操作系统上,利用Pthread API编写应用程序实现矩阵乘法
在上述两种环境下,实现相乘操作的两个矩阵均作为应用程序的输入参数动态生成,并输出计算结果
在程序实现过程中,要求每个乘积矩阵元素的计算过程均由一个独立的线程实现
三、实验步骤 (1)设计思路 ① 动态生成矩阵A,B,C 并为它们分别赋值,其中C 默认为0 ② 创建多个线程去计算矩阵C 中每个元素,其中为每个线程传入一个结构体data,它的两个数据成员为C 的行号和列号 ③ 输出矩阵C (2)流程图 四、主要数据结构 本实验用了一个结构体类型data 用于传递行号和列号 五、程序运行时的初值和运行结果 ① win32 下 输出矩阵C 的元素 结束 开始 动态矩阵A,输入其行数与列数row × rc 动态输入矩阵B 的列数col 为矩阵A 赋值 为矩阵B 赋值 生成row × col个线程 计算矩阵c 每个元素 C=A× B ② pthread 六、实验体会: 本次实验总体感觉不难,主要就是掌握win32 和 pthread 中线程的使用
具体的算法就是矩阵的乘法计算,较容易实现
其实,原理理解清楚,理解透,各个语言去实现都是一样的,顶多就是函数不一样而已
七、源程序并附上注释 ①用win32 实现 #include #include #include int row,rc,col; //矩阵A 和 B 的行数列数 int **A; //矩阵