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

В чужую область не залезет, ничего не попортит. Иногда не важна

прям такая строгость, например для использования просто как флаг.
Итак го даёт возможность писать в переменную из горутин, но даёт при это хоть где нибудь гарантии thread-safity?

7 ответов

21 просмотр

happens before?

Дмитрий-Спиридонов Автор вопроса

Про happens before задавал этот вопрос 3 дня назад, никто так и не ответил, но уже разобрался =) Так вот, про map написали конкретно что нельзя, но про другие типы под вопросом. Есть какие то гарантии в стандарте, описании?

Простой ответ на это - юзайте -race флаг, это включит рейс детектор и он уже кинет ворнинги. Конкурентная запись + чтение/запись любой переменной = гонка данных, даже если эта переменная скрыта в исходниках го. Конкурентное чтение - не гонка.

Elmanov Anton
Простой ответ на это - юзайте -race флаг, это вклю...

Про чтение - были причудливые платформы. Моё любимое: The short version is that Alpha requires memory barriers for readers as well as updaters of linked data structures. Yes, this does mean that Alpha can in effect fetch the data pointed to before it fetches the pointer itself, strange but true.

Дмитрий-Спиридонов Автор вопроса
Elmanov Anton
Простой ответ на это - юзайте -race флаг, это вклю...

Я не совсем про барьеры памяти. Например на c++ собираешь ты данные из внешней системы и кладёшь в строку и отдельный поток иногда запрашивает значение строки. Строки через указатели поэтому просто создаёшь новый буфер с ново строкой и меняешь указатель. Тут не важна гонка памяти. Даже если команда записи в память уже выполнена но оно реально туда не поместилось, там будет предыдущее значение что тоже устроит. +- пару тактов, по сети это всё равно получено с задержкой. И мьютексы и прочие синхронизации тут лишние.

в том то и дело, что попортит

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта