xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

linux下多線程實現矩陣乘法,可以對操作系統的線程有更多理解

資源截圖

代碼片段和文件信息

/*author?:林海南
?*主要用M*N個計算線程進行數值計算,用一個打印線程來打印結果實現多線程編程
?*打印線程作為主線程,使得在計算進程結束之前,不能將結果進行打印,當然并行行并不是那么太好。
?*程序可以正常運行,不過由于線程等待條件過強,基本上還是一個線性的執行過程
*/
#include
#include
#include

#define?NUMBER?1000
struct?Info
{
?????int?i;
?????int?j;
};
int?M=10;
int?N=10;
int?K=10;
int?A[NUMBER][NUMBER];??????????????//矩陣A
int?B[NUMBER][NUMBER];??????????????//矩陣B
int?C[NUMBER][NUMBER];??????????????//矩陣C
pthread_t?threads[NUMBER][NUMBER];???//線程

void?*multiply(void?*tid)??????????//計算C矩陣中i,j位置的數值
{
?????struct?Info?*temp?=malloc(sizeof(struct?Info));
?????temp?=(struct?Info?*)tid;
?????int?sum=0;
?????int?i;
?????for(i=0;i?????{
?????????sum?+=A[temp->i][i]*B[i][temp->j];?
?????}
?????C[temp->i][temp->j]=sum;????//結果放回C中
?????return?tid;
}
void?*print(void?*tid)??????????//打印結果函數,作為主函數
{
?????int?ij;
?????for(i=0;i?????{
????????for(j=0;j????????{
???????????printf(“%d?“C[i][j])????;
????????}
????????printf(“\n“);
?????}
?????retur

評論

共有 條評論