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

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

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

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

7 ответов

8 просмотров

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

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

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

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

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

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

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

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

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

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

тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
Карта сайта