Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Threading;
- namespace ParalelenSami
- {
- public class Program
- {
- private const int SIZE = 16;
- public static void Main(string[] args)
- {
- int[] resultArr = new int[SIZE];
- int[,] matrix = GenerateMatrix(SIZE);
- Thread[] threads = new Thread[]
- {
- new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 0, (SIZE / 4 * 1) - 1)),
- new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 1, (SIZE / 4 * 2) - 1)),
- new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 2, (SIZE / 4 * 3) - 1)),
- new Thread(() => Multiply(matrix, resultArr, SIZE / 4 * 3, (SIZE / 4 * 4) - 1))
- };
- foreach (var t in threads)
- {
- t.Start();
- }
- foreach (var t in threads)
- {
- t.Join();
- }
- Console.WriteLine("Result:");
- foreach (var n in resultArr)
- {
- Console.Write($"{n} ");
- }
- }
- public static int[,] GenerateMatrix(int size)
- {
- Random random = new Random();
- int[,] matrix = new int[size, size];
- for (int i = 0; i < size; i++)
- {
- for (int k = 0; k < size; k++)
- {
- matrix[i, k] = random.Next();
- }
- }
- return matrix;
- }
- public static void Multiply(int[,] matrix, int[] resultArr, int min, int max)
- {
- for (int i = min; i <= max; i++)
- {
- int mult = 1;
- for (int k = 0; k < resultArr.Length; k++)
- {
- mult *= matrix[i, k];
- }
- resultArr[i] = mult;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement