示例#1
0
        static void Main(string[] args)
        {
            RemoteServerGroup.Initiate(args); // Inicjalizacja singletona Remote Server Group

            // Tutaj powinny zostać stworzone wszystkie Monitory i zmienne warunkowe

            BufforMonitor sharedBufforMonitor = new BufforMonitor(3, RemoteServerGroup.Instance.NodeAddressNumber);

            ConditionalVariable empty = new ConditionalVariable("Empty", sharedBufforMonitor);
            ConditionalVariable full  = new ConditionalVariable("full", sharedBufforMonitor);

            RemoteServerGroup.StartRemoteExecution(); // Barriera zapewniająca, że wszystkie servery wykonają poprawnie całą inicjalizację obiektów

            if (RemoteServerGroup.Instance.NodeAddressNumber < 2)
            {
                Consumer consumer = new Consumer(empty, full, sharedBufforMonitor);
                consumer.Consume();
            }
            else
            {
                Producer producer = new Producer(empty, full, sharedBufforMonitor);
                producer.Produce();
            }
            RemoteServerGroup.Finish();
        }
示例#2
0
 public Producer(ConditionalVariable empty, ConditionalVariable full, BufforMonitor sharedBufforMonitor)
 {
     Empty = empty;
     Full  = full;
     SharedBufforMonitor = sharedBufforMonitor;
 }