Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++에서 pthread를 사용한 행렬의 덧셈과 뺄셈

<시간/>

여기서는 다중 스레드 환경을 사용하여 행렬 덧셈 및 뺄셈을 수행하는 방법을 살펴봅니다. pthread는 C 또는 C++에서 동시에 여러 스레드를 실행하는 데 사용됩니다.

행렬 A와 B가 있습니다. 각 행렬의 차수는 (m x n)입니다. 각 스레드는 각 행을 취하고 더하기 또는 빼기를 수행합니다. 따라서 m개의 행에 대해 m개의 서로 다른 스레드가 있습니다.

예시

#include#include #include #include #define CORE 3#define MAX 3 네임스페이스 사용 std;int AMat[MAX][MAX] ={{10, 20 , 30}, {40, 50, 60}, {70, 80, 50}};int BMat[최대][최대] ={{80, 60, 20}, {30, 20, 15}, {10, 14, 35}};pthread_t 스레드[CORE * 2];int add[MAX][MAX], sub[MAX][MAX];void* addMatrices(void* 인수) { intptr_t 코어 =(intptr_t) 인수; // 각 스레드는 행렬 덧셈의 1/3을 계산합니다. for (int i =core * MAX / 3; i <(core + 1) * MAX / 3; i++) { for (int j =0; j  

출력

행렬 A:10 20 3040 50 6070 80 50행렬 B:80 60 2030 20 1510 14 35덧셈:90 80 5070 6 10 7580 94 85빼기:-70 -4001