Synchronizacja obiektów

0

Witam!

Mam zamodelowany świat w którym istnieją powiedzmy 2 punkty A i B. Punkty są połączone drogą dwukierunkową (w zasadzie są to dwa obiekty typu Droga tyle że jeden ma ustawiony punkt początkowy na A, a końcowy na B oraz drugi obiekt drogi ma to ustawione na odwrót)
Droga posiada pole typu Lock (standardowy lock z metodami lock() oraz unlock()).

Mój problem polega na tym że nie wiem w jaki sposób lockować drogi w przypadku takim żeby w jednym kierunku na raz mogło się poruszać wiele obiektów, ale jeżeli jakiś obiekt chciałby przejechać z punktu B do A podczas gdy z punktu A do B porusza się jeden lub więcej obiektów to ten chcący przejechać z B do A musi poczekać

Z góry dzięki za odp.

0

To chyba najprościej zrobić dwa liczniki w dwóch skrajnych punktach domyślnie ustawione na 0. Przy wjeździe sprawdzasz, czy w przeciwnym punkcie licznik jest 0, jak tak to zwiększasz swój (punktu startowego) licznik, przejeżdżasz i zmniejszasz swój licznik.

Podobne rozwiązanie było stosowane na skrzyżowaniu przy dworcu zachodnim w Warszawie, tylko że nikt nie wziął pod uwagę niesubordynacji kierowców. Więc jeżeli ktoś złamał przepisy to nagle ten licznik miał powiedzmy -1 i cały system się psuł.

0

Dzięki wielkie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1