欢迎来到天天文库
浏览记录
ID:41465891
大小:102.90 KB
页数:7页
时间:2019-08-25
《多线程编程实现矩阵乘法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、多线程编程实现矩阵乘法一、基本信息:实验题目:多线程编程实现矩阵乘法完成人姓名:学号:报告日期:2010/4/4二、实验目的通过实验,熟悉基于Win32线程库和Pthread线程库的编程环境,掌握利用WindowsAPI和PthreadAPI进行多线程编程的方法,进一步加深对线程概念以及多线程编程相关事项的理解。三、实验内容1.在Windows操作系统上,利用WindowsAPI编写应用程序实现矩阵乘法。2.在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。3.在上述两种环境下,实现相乘操作的两个矩阵均作为应用程序的输入参数动态主成,并输出计算结果。4.在程序实现
2、过程中,要求每个乘积矩阵元素的计算过程均由一个独立的线程实现。!1!实验步骤(设计思路和流程图)一*在Windows操作系统上,利用WindowsAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量E#include#include#includeDWORDWINAPIThreadProc(LPVOIDIpParameter);//多线程处理两矩陆的乘函数structDOUB{introw^col;};Binta;intoperl[10][10];//存储第一个拒阵intoper2[10][10];//存储第二个矩阵i
3、ntres[10][10];//两矩阵的乘稅HANDLEhJilutex[10][10];intH;intK:intN:2)ThreadProc(LPVOIDIpParameter)函数多线程实现矩阵乘法EDWORDWINAPIThreadProc(LPVOIDIpParameter)〃多线程处理两矩阵的乘{DOUB*hCur=(DOUB*)IpParameter:intx=hCur->row;inty=hCur->col;Mutex[x][y]=GreateMutex(NULL^true^NULL);intr=0:for(inti=0;i4、er2[i][y];res[x][y]=r;ReleaseMutex(hMutex[x][y]);return0:}3)main函数具体实现Bintmain()printf(“二===============“);"输入第一个矩阵printfC输入第一个矩阵的行和列:E):scanfC%d%d^&儿&K);printfC输入第一个矩阵:W):for(inti=0;i5、『);for(inti=0:irow=i;hTemp->col=j;HANDLEhThread=GreateThread(NULL^0^ThreadProCjhTempj0jNULL):CloseHandle(hThread);Sleep(lOO);}}for(inti=0;i6、i)for(intj=0;j7、rn0;二、在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量#include#includepthreadthThread[10][10];intpass[10][10][2];intintintintM,K,N;operl[10][IO];oper2[10][10];res[10][10];2)ThreadProc(int*param)
4、er2[i][y];res[x][y]=r;ReleaseMutex(hMutex[x][y]);return0:}3)main函数具体实现Bintmain()printf(“二===============“);"输入第一个矩阵printfC输入第一个矩阵的行和列:E):scanfC%d%d^&儿&K);printfC输入第一个矩阵:W):for(inti=0;i5、『);for(inti=0:irow=i;hTemp->col=j;HANDLEhThread=GreateThread(NULL^0^ThreadProCjhTempj0jNULL):CloseHandle(hThread);Sleep(lOO);}}for(inti=0;i6、i)for(intj=0;j7、rn0;二、在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量#include#includepthreadthThread[10][10];intpass[10][10][2];intintintintM,K,N;operl[10][IO];oper2[10][10];res[10][10];2)ThreadProc(int*param)
5、『);for(inti=0:irow=i;hTemp->col=j;HANDLEhThread=GreateThread(NULL^0^ThreadProCjhTempj0jNULL):CloseHandle(hThread);Sleep(lOO);}}for(inti=0;i6、i)for(intj=0;j7、rn0;二、在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量#include#includepthreadthThread[10][10];intpass[10][10][2];intintintintM,K,N;operl[10][IO];oper2[10][10];res[10][10];2)ThreadProc(int*param)
6、i)for(intj=0;j7、rn0;二、在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量#include#includepthreadthThread[10][10];intpass[10][10][2];intintintintM,K,N;operl[10][IO];oper2[10][10];res[10][10];2)ThreadProc(int*param)
7、rn0;二、在Linux操作系统上,利用PthreadAPI编写应用程序实现矩阵乘法。1):函数的定义以及全局变量#include#includepthreadthThread[10][10];intpass[10][10][2];intintintintM,K,N;operl[10][IO];oper2[10][10];res[10][10];2)ThreadProc(int*param)
此文档下载收益归作者所有