Advertisement
Sitisom

Thread1

Sep 8th, 2020 (edited)
907
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.75 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5.  
  6.  
  7. namespace ThreadingTPM
  8. {
  9.     class Program
  10.     {
  11.         const int size = 10000;
  12.         const int thrCount = 10;
  13.         const int space = size / thrCount;
  14.  
  15.        
  16.  
  17.         static void Main(string[] args)
  18.         {
  19.  
  20.             float[,] arr1 = new float[size, size];
  21.             float[,] arr2 = new float[size, size];
  22.  
  23.             Random r = new Random();
  24.             Thread[] threads = new Thread[thrCount];
  25.             Stopwatch watch = new Stopwatch();
  26.  
  27.             for (int i = 0; i < size; i++)
  28.             {
  29.                 for (int j = 0; j < size; j++)
  30.                 {
  31.                     arr1[i, j] = (float)r.NextDouble() * r.Next(-1000, 1000);
  32.                     arr2[i, j] = (float)r.NextDouble() * r.Next(-1000, 1000);
  33.                 }
  34.             }
  35.            
  36.             int count = 0;
  37.            
  38.             watch.Start();
  39.  
  40.             for (int j = 0; j < thrCount; j++)
  41.             {
  42.                 threads[j] = new Thread(delegate () { DiffFunc(arr1, arr2, count); });
  43.                 threads[j].Start();
  44.                 threads[j].Join();
  45.                 count++;
  46.             }
  47.  
  48.             watch.Stop();
  49.             Console.WriteLine(string.Format("Threads ({0}): {1}", thrCount, watch.Elapsed));
  50.         }
  51.  
  52.         static void DiffFunc(float[,] arr1, float[,] arr2, int count)
  53.         {
  54.             int x = count * space;
  55.             for (int i = x; i < x + space; i++)
  56.             {
  57.                 for (int j = 0; j < size; j++)
  58.                 {
  59.                     arr1[i, j] += arr2[i, j];
  60.                     arr1[i, j] = arr1[i, j] * arr1[i, j];
  61.                 }
  62.             }
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement