Многопоточность senior
Когда использовать что — Random, SecureRandom, ThreadLocalRandom?
Ответ
Random — для однопоточного кода с обычной случайностью (тесты, моки, простой код). ThreadLocalRandom — для многопоточного кода с обычной случайностью (concurrent workloads, parallel stream), без contention на общий seed. SecureRandom — для криптографии (токены, пароли, соль), но он медленнее.
Разбор: Random годится для однопоточной несекретной случайности, ThreadLocalRandom — для многопоточной несекретной (нет contention на общий seed), а SecureRandom — для криптографии (токены, пароли, соль), но он медленнее. Ловушки: общий Random в многопотоке хоть и synchronized, но создаёт contention и проигрывает ThreadLocalRandom; ThreadLocalRandom НЕ криптостоек; SecureRandom не быстрее и не замена обычному Random для произвольной случайности.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.