Java

Что сложного в многопоточной разработке ПО

Почему многие считают что это очень сложно? Что добавляет сложности?
да нет не какой сложности, особенно в чате на 200 человек где каждого нужно уведомить о сообщении в зависимости от роли и подписки черных списков в реал тайме)))) немного сарказма
Евгений Петров
Евгений Петров
20 993
Лучший ответ
Михаил Базилевский Не понял сарказма.
для тебя это просто? тогда почему столько вопросов ни о чём и ленивые запросы найти тебе какие-то курсы?...
Основная проблема многопоточости это то что ява сама по себе старый тормознутый мамонт, ну а создание потока является очень дорогостоящей операцией, поэтому я до сих пор не видел ни одного нормального десктопного приложения на ява. Ну а самая главная проблема не создать поток, а прибить его по требованию в какой то определенной ситуации, обычно все строится вокруг этого момента.
Виктор Бухов
Виктор Бухов
74 422
Сложно дебажить. Не знаю ни одного IDE, где бы дебаггер адекватно отрабатывал многопоток. Фактически, это программирование в слепую. Ты сначала пишешь функцию, шлифуешь её до предела. А потом вставляешь в многопоток, скрестив пальцы и надеясь, что "всё будет хорошо".
Олег Рачёв
Олег Рачёв
26 551
Виктор Бухов Может потому что ява дрочь?
Ну раз несложно, то хорошо
Михаил Базилевский Разве я говорил или намекал, что это легко?
добавляет сложности правильное использование и освобождение потоков, одно дело писать с использованием Spring'a, где все работает из коробки, каждый запрос в отдельном потоке, и всё написано за вас, а если вам нужен ScheduledThreadPool вы просто аннотацию @Scheduled ставите и всё круто. Другое дело, если вы сами попробуете писать используя Thread, Runnable, делать start, join, синхронизироваться на объектах в коде, понимать кучу тонких вещей. Даже люди с 5-6 годами опыта на собеседовании теряются когда их спрашивают про volatile, happend before и прочее. Да у нас есть java.util.concurrent с его Пулами и Атомиками и это круто, но даже с их помощью что-то стоящее написать не многие смогут.
EI
Evgeniy Ishchenko
503
Николай Зеленин Кто этот человек, который с 6 летним опытом на java потерялся в volatile? Это же основы многопоточности. Самым первым проходят...