Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. var ev = new CountdownEvent(8);
  6. var a = DateTime.Now;
  7. /* ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  8. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  9. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  10. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  11. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  12. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  13. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  14. ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
  15. Console.WriteLine("start");
  16. ev.Wait();
  17. */
  18.  
  19. var a1 = new Thread(Pi.CountPi);
  20. var a2 = new Thread(Pi.CountPi);
  21. var a3 = new Thread(Pi.CountPi);
  22. var a4 = new Thread(Pi.CountPi);
  23. var a5 = new Thread(Pi.CountPi);
  24. var a6 = new Thread(Pi.CountPi);
  25. var a7 = new Thread(Pi.CountPi);
  26. var a8 = new Thread(Pi.CountPi);
  27. a1.Start(new ThreadData()
  28. {
  29. Count = 1000000000, Event = ev
  30. });
  31. a2.Start(new ThreadData()
  32. {
  33. Count = 1000000000, Event = ev
  34. });
  35. a3.Start(new ThreadData()
  36. {
  37. Count = 1000000000, Event = ev
  38. });
  39. a4.Start(new ThreadData()
  40. {
  41. Count = 1000000000, Event = ev
  42. });
  43. a5.Start(new ThreadData()
  44. {
  45. Count = 1000000000, Event = ev
  46. });
  47. a6.Start(new ThreadData()
  48. {
  49. Count = 1000000000, Event = ev
  50. });
  51. a7.Start(new ThreadData()
  52. {
  53. Count = 1000000000, Event = ev
  54. });
  55. a8.Start(new ThreadData()
  56. {
  57. Count = 1000000000, Event = ev
  58. });
  59. a1.Join();
  60. a2.Join();
  61. a3.Join();
  62. a4.Join();
  63. a5.Join();
  64. a6.Join();
  65. a7.Join();
  66. a8.Join();
  67.  
  68. Console.WriteLine("stop all");
  69. Console.WriteLine(DateTime.Now-a);
  70. }
  71. }
  72. public class Pi
  73. {
  74. public static void CountPi(object o)
  75. {
  76. var c = o as ThreadData;
  77.  
  78. int d = 1;
  79. double pi = 0;
  80. for (int i = 0; i < c.Count; i++)
  81. {
  82. if (i % 2 == 0)
  83. pi += 1.0 / d;
  84. else
  85. pi -= 1.0 / d;
  86. d += 2;
  87. }
  88.  
  89. Console.WriteLine("kek");
  90. c.Event.Signal();
  91. }
  92. }
  93. public class ThreadData
  94. {
  95. public int Count { get; set; }
  96. public CountdownEvent Event { get; set; }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement