⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main(linux).cpp

📁 多线程实现矩阵相乘 多线程实现矩阵相乘
💻 CPP
字号:
#include <stdio.h>
#include <pthread.h>

int i;
int j;static int m = 3;
static int k = 4;
static int n = 2;
int A[3][4];
int B[4][2];
int C[3][2];
void* thread(void * ptr)
{
	for (int p = 0; p < k; p++)
	{
		A[i][p] = B[p][j] = p;
		C[i][j] += A[i][p] * B[p][j];
	}
}

int main()
{
	int ret;
	
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			            C[i][j] = 0;
			pthread_t id;
			ret = pthread_create(&id,NULL,thread,NULL);
			
			if (ret != 0)
			{
				printf ("Create pthread error!\n");
				return 0;
			}
			
			pthread_join(id,NULL);
		}
	}
	
	printf("A:\n");
	for (int x1 = 0; x1 < m; x1++)
	{
		for (int y1 = 0; y1 < k; y1++)
		{
			printf("%05d",A[x1][y1]);
		}
		printf("\n");
	}
	
	printf("\nB:\n");
	for (int x2 = 0; x2 < k; x2++)
	{
		for (int y2 = 0; y2 < n; y2++)
		{
			printf("%05d",B[x2][y2]);
		}
		printf("\n");
	}
	
	printf("\nC:\n");
	for (int x3 = 0; x3 < m; x3++)
	{
		for (int y3 = 0; y3 < n; y3++)
		{
			printf("%05d",C[x3][y3]);
		}
		printf("\n");
	}
	
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -