Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Этапы дз
создан класс training в который вынесена подготовка из метода run, для того чтобы применить cb.
в качестве аргумента в метод training передается CyclicBarier, так и происходит ожидаение всех участниуов на этапе подготовки.
изменен метод запуска потока для участников (// потоки участников) - все разделено по этапам.
создаем CountDownLatch cdl для того чтобы ожидать завершения операций приготовления training и отправить sout"Гонка началась!"
Создан класс Semaphore ( cars/2) те ограничивает количество потоков как количкство участников/2
В конструктор класса Tunnel добавлен smp
перед Началом этапа метод acquire(), в конце release() таким образом, если stage == Tunnel то проезжают только половина участников, остальные ждут когда произойдет метод relaese() (те Реализовано в классе Tunnel)
так же как во втором пункте делаем и с Semaphore smpFin, поместив его в main и ограничив счетчик количеством участников, по завершении всех потоков выводится sout о завершении гонки
Финиширование реализовано в классе car: создан экземпляр Lock и методок locktry ждем первый попавшийся поток и выводим sout о Выигрыше участника. lock оствляем заблокированным. остальные потоки не пройдут в условии.