172 похожих чатов

Просто я читал и так и не понял, зачем

создавать глобально переменную и передавать ее в потоки, где она прикидывается локальной?
почему нельзя сразу локальную переменную создать?

я реал не понимаю, если не сложно, объясните

7 ответов

15 просмотров

Полезно, когда тебе хочется что-то закешировать не платя при этом за синхронизации между тредами. Пример с хэшмапами: — Тебе нужно использовать случайный сид для хэшера в HashMap, чтобы защититься от DOS-атак — При этом тебе не важно чтобы все хэшмапы получали полностью случайных сид, это бесполезный оверкилл (получать случайное число относительно дорого) — При этом тебе важно чтобы у всех хэшмап был разный сид, чтобы у них не совпадал порядок итерации и не было edge кейсов с квадратичной сложностью Поэтому std — вызывает random() один раз и кэширует в thread_local — при вызове HashMap::new() использует закешированное случайное число как сид и увеличивает закешированное число на 1 В целом в большей части кода это не нужно, но иногда вот вылезает

вафля'
Полезно, когда тебе хочется что-то закешировать не...

То есть правильно понимаю: при создании потока делается let mut random_seed = random(); при HashMap::new() происходит random_seed += 1; ?

Александр Сергеев
То есть правильно понимаю: при создании потока дел...

+-, да Только в начале random_seed сохраняется в структуру, чтобы у одной хэшмапы он всегда был одинаковый и потом делается wrapping_add(1)

Что просто переменная, какое название?

вафля'
Что просто переменная, какое название?

ну я понял, это как глобальная переменная, только уникальная для каждого потока

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта