Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. using System;
  2.  
  3. using System.Threading;
  4.  
  5. namespace _5Filosofi
  6. {
  7. class HoldForchettaUnsyncronized
  8. {
  9. private int forchetta = -1;
  10. private int importanza;
  11. public int Forchetta
  12. {
  13. get
  14. {
  15. Console.WriteLine(Thread.CurrentThread.Name + " legge " + forchetta);
  16. return forchetta;
  17. }
  18. set
  19. {
  20. Console.WriteLine(Thread.CurrentThread.Name + " scrive " + value);
  21. forchetta = value;
  22.  
  23. }
  24. }
  25. public HoldForchettaUnsyncronized(int num)
  26. {
  27. importanza = num;
  28. }
  29. }
  30. class Filosofo
  31. {
  32. private HoldForchettaUnsyncronized sharedLocation;
  33. private Random randomSleepTime;
  34.  
  35. public Filosofo(HoldForchettaUnsyncronized shared, Random random)
  36. {
  37. sharedLocation = shared;
  38. randomSleepTime = random;
  39. }
  40.  
  41. public void Riposiziona()
  42. {
  43. for (int count = 1; count <= 2; count++)
  44. {
  45. Thread.Sleep(randomSleepTime.Next(1, 3000));
  46. sharedLocation.Forchetta = count;
  47. }
  48. Console.WriteLine(Thread.CurrentThread.Name + " Utilizzata.");
  49. }
  50. public void Utilizza()
  51. {
  52. int sum = 0;
  53. for (int count = 1; count <= 4; count++)
  54. {
  55. Thread.Sleep(randomSleepTime.Next(1, 3000));
  56. sum += sharedLocation.Forchetta;
  57. }
  58. Console.WriteLine(Thread.CurrentThread.Name + " read values totalng: " + sum);
  59. Console.WriteLine("Terminating " + Thread.CurrentThread.Name);
  60. }
  61. }
  62. class Program
  63. {
  64. static void Main(string[] args)
  65. {
  66. HoldForchettaUnsyncronized[] holdForc = new HoldForchettaUnsyncronized[5];
  67.  
  68. holdForc[0] = new HoldForchettaUnsyncronized(1);
  69. holdForc[1] = new HoldForchettaUnsyncronized(2);
  70. holdForc[2] = new HoldForchettaUnsyncronized(3);
  71. holdForc[3] = new HoldForchettaUnsyncronized(4);
  72. holdForc[4] = new HoldForchettaUnsyncronized(5);
  73.  
  74. Random random = new Random();
  75.  
  76. Filosofo[] Filosofo = new Filosofo[5];
  77.  
  78. Filosofo Filosofo = new Filosofo(holdForc, random);
  79. Thread Utilizza = new Thread(new ThreadStart(Filosofo.Utilizza));
  80. Thread Riposiziona = new Thread(new ThreadStart(Filosofo.Riposiziona));
  81. Riposiziona.Name = "Riposiziona";
  82. Utilizza.Name = "Utilizza";
  83. Utilizza.Start();
  84. Riposiziona.Start();
  85.  
  86. }
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement