308 читали · 1 год назад
#6 Проблемы конкурентного программирования (deadlock, livelock, starvation)
В программировании в общем и в Golang в частности существуют проблемные ситуации при конкурентом выполнении задач. Рассмотрим основные из них: 1. Deadlock Ситуация, когда процесс переходит в состояние ожидания, поскольку другой ожидающий процесс удерживает требуемый ресурс. Пример из жизни: пара ведет романтический разговор по телефону, и когда наговорились, ни один из них не хочет вешать трубку первым: «Нет, ты повесь трубку первым!» - взаимозаблокировались =) В Go Deadlock будет, когда две или...