Advertisement
george1119

paralelen sami 2

Apr 12th, 2022
1,236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4.  
  5. namespace ParalelenSami
  6. {
  7.     public class Program
  8.     {
  9.         private const int SIZE = 16;
  10.  
  11.         public static void Main(string[] args)
  12.         {
  13.             int[] resultArr = new int[SIZE];
  14.             int[,] matrix = GenerateMatrix(SIZE);
  15.  
  16.             Thread[] threads = new Thread[]
  17.             {
  18.                 new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 0, (SIZE / 4 * 1) - 1)),
  19.                 new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 1, (SIZE / 4 * 2) - 1)),
  20.                 new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 2, (SIZE / 4 * 3) - 1)),
  21.                 new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 3, (SIZE / 4 * 4) - 1))
  22.             };
  23.  
  24.             foreach (var t in threads)
  25.             {
  26.                 t.Start();
  27.             }
  28.  
  29.             foreach (var t in threads)
  30.             {
  31.                 t.Join();
  32.             }
  33.  
  34.             Console.WriteLine("Result:");
  35.             foreach (var n in resultArr)
  36.             {
  37.                 Console.Write($"{n} ");
  38.             }
  39.         }
  40.  
  41.         public static int[,] GenerateMatrix(int size)
  42.         {
  43.             Random random = new Random();
  44.  
  45.             int[,] matrix = new int[size, size];
  46.  
  47.             for (int i = 0; i < size; i++)
  48.             {
  49.                 for (int k = 0; k < size; k++)
  50.                 {
  51.                     matrix[i, k] = random.Next();
  52.                 }
  53.             }
  54.  
  55.             return matrix;
  56.         }
  57.  
  58.         public static void Multiply(int[,] matrix, int[] resultArr, int min, int max)
  59.         {
  60.             for (int i = min; i <= max; i++)
  61.             {
  62.                 int mult = 1;
  63.                 for (int k = 0; k < resultArr.Length; k++)
  64.                 {
  65.                     mult *= matrix[i, k];
  66.                 }
  67.  
  68.                 resultArr[i] = mult;
  69.             }
  70.         }
  71.     }
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement