Практика синхронизации в Kotlin
Переменная score и Mutex.
Три корутины по 200 приращений
под ручным замком с finally.
После ожидания выведите итоговый счет.
Баланс wallet в массиве из одного
Int. Две задачи переводят по
5 монет через блок под
withLock. Напечатайте сумму
после joinAll.
Семафор на 2 разрешения. Пять
корутин выводят "tap", ждут
40 мс и освобождают слот в
finally. Проверьте, что
одновременно активны не более двух.
Класс Furnace с полем нагрева и
Mutex. Метод повышает температуру
на 3 под замком. Четыре
параллельных вызова должны дать
12 к базовому нулю.
Общий Semaphore(2) и функция с
паузой 70 мс внутри участка.
Семь запусков печатают номер и
дожидаются конца всех через
coroutineScope или joinAll.
Счетчик errors и замок. Две
корутины чередуют delay и
приращение только внутри
withLock. Итог после
100 шагов на задачу равен
200.
Класс Dock с семафором на два
причала. Метод погрузки ждет слот,
печатает имя груза, делает паузу
50 мс и освобождает место.
Проверьте четыре груза с разными
метками.