Java. Короткий огляд еволюції багатопотоковості
У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:
У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:
Десь вискочив OutOfMemory. Як взнати, що є причиною? Чи достатньо буде треддампу (в нас є декілька потоків, аутофмеморі міг викинутися в іншому потоці, який просто десь створив новий об'єкт, але реальна проблема в іншому потоці)?
epoll - це механізм введення-виведення, який дозволяє ефективно моніторити кілька файлових дескрипторів
Для цього використовується ThreadLocalHoldCounter, яка відображає потоки на їхні..
..і точно зрозуміти що десь стався дедлок може бути дуже не тривіальною задачею.
Коротший час блокувань може збільшити загальну пропускну здатність системи, оскільки більше потоків може отримати доступ до синхронізованих секцій протягом певного часу.
Монітор має зовнішню чергу, що контролюється ОС. Це список очікуючих потоків на вхід до монітора для виконання операцій.
Java: розбір процесів та потоків, їх відмінностей, спільного використання даних та управління виконанням коду.
Java Software Engineer