Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. // Módosítsuk az 1 és N közötti számokat összeadó programot úgy, hogy az intervallumot K részre osztjuk,
  5. // és K szálat indítunk. Mérjük meg K függvényében a sebességet.
  6.  
  7. namespace ConsoleApp12
  8. {
  9. using System;
  10. using System.Threading;
  11. using System.Diagnostics;
  12.  
  13. class Lista
  14. {
  15. static long[] szamlalok = new long[] { 0, 0, 0, 0, 0, 0, 0, 0 };
  16. static long N = 10000000;
  17.  
  18. static long K = 2;
  19.  
  20. static void Main()
  21. {
  22. Stopwatch sw = new Stopwatch();
  23. Console.WriteLine("freq = {0}", Stopwatch.Frequency);
  24.  
  25. sw.Start();
  26.  
  27. long s = 0;
  28. for (int i = 1; i <= N; ++i)
  29. {
  30. s += i;
  31. }
  32. sw.Stop();
  33.  
  34. Console.WriteLine("Egy szálon: {0}", s);
  35. Console.WriteLine("Idő: {0}", sw.Elapsed);
  36.  
  37. sw.Reset();
  38. sw.Start();
  39.  
  40. for (long i = 0; i < K; i++)
  41. {
  42. Thread t = new Thread(Work);
  43. t.Start(i);
  44. t.Join();
  45. }
  46.  
  47. sw.Stop();
  48.  
  49. s = 0;
  50. for (int i = 0; i < K; i++)
  51. {
  52. s += szamlalok[i];
  53. }
  54. Console.WriteLine("{1} szálon: {0}", s, K);
  55. for (int i = 0; i < K; i++)
  56. {
  57. Console.Write("{0}\n",szamlalok[i]);
  58. }
  59. Console.WriteLine("Idő: {0}", sw.Elapsed);
  60. }
  61.  
  62. static void Work(object msg)
  63. {
  64. long ind = (long)msg;
  65. long s = 0;
  66. for (long i = 1 + ind * N / K; i <= (ind + 1) * N / K; ++i)
  67. {
  68. s += i;
  69. }
  70. //Console.WriteLine(1 + ind * N / K);
  71. szamlalok[ind] = s;
  72. }
  73. }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement