-
Сообщений
16 850 -
Зарегистрирован
-
Посещение
-
Время онлайн
189д 15ч 29м 28с
Все публикации пользователя Grohuf
-
эта функция делает два действия, читает и пишет два действия отдельно не являются атомарными по определению, поэтому и существует специальная инструкция сами запись и чтение всегда атомарны, тк меньше них сука уже ничего просто нет хотя ладно, мб тут напиздел, помню были проблемы если память не выровнена, но надеюсь это приветы из прошлого Не помогай вове! Как ты инфляцию "в реальности" считаешь? Так 8% (хотя я слышал, что 7%) не так плохо, чтобы душить экономику. Чем тебе инфляция вообще помешала? От нее не холодно, не жарко, если экономика (в рублях) растет быстрее. Проблема может быть в потенциальной перегретости экономики, что может спровоцировать кризис. Типа активно покупают квартиры, активно строят жилье -> привет куча не нужного жилья (кажется, с этим сталкивался несколько лет назад Китай).
-
Хмм, ну если одним потоком будет рулить, горилла, а другим медведь...
-
Не понял. Зачем повышать ставку? Кто ожидал? Инфляцию давно уже задавили. Валюта даже чуток подешевела. Неужели думают, что экономика перегрета и ее надо охлаждать? Я слышал, что не смотря на бешенные проценты по ипотеке, квартиры продолжают покупать. Но неужели все настолько плохо, что надо повышать ключевую ставку выше 16% (что уже вообще-то дохуя).
-
Нахуй тебе эта помойка? Тебе любой в топане скажет, что Яндекс - залупа кгбшная.
-
Я думаю, если ты скажешь, что в курсе, что барьеры памяти существуют, и что нельзя просто так читать-писать переменную из нескольких потоков - это уже хорошо. Достаточно для того, чтобы не совершить тупую ошибку и знать про что читать, если понадобится. На собесе я часто задаю задачу на многопоточность. Так вот, для меня главное, чтобы соискатель понимал, какая будет ошибка и чтобы он знал, как ее починить с помощью мьютекса корректно. Причем главное первое, чтобы видеть, что он не тупой и понимал, какие проблемы, когда взаимодействуют потоки. Если он попытается решить задачку с помощью lock free кода и начнет писать что-то разумное - это ваще круто. Если он решит корректно (ни разу не было без подсказок), то это вообще пиздец, сразу CEO можно назначать. Про барьеры я не спрашиваю, но если соискатель будет знать про них - это плюс.
-
Я думаю, каждый знает, кто этот единственный, не душный. Кстати, ты уже многопоток выучил?
-
@Vova А смотри, что еще нашел: https://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions#:~:text=Hardware Lock Elision (HLE) is,execution of transactional code regions Это что же получается? Acquire и Release есть не только на PowerPC получается? Что вообще происходит? Нафига нужны эти команды? Они же только да сложных объекто, да?!
-
@Vova Смотри что нашел! https://learn.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-interlockedexchange Совсем ебанулись, да? Они че, не знают, что 32 битные значения на 32 битных компьютерах записываются АТОМАРНО! Они для этого функцию сделали, хотя уже 386 были 32 битным. Ахахаха, всегда знал, что Билл Гейтс - шизик.
-
Мы не можем говорить про "разное". Речь конкретно шла с самого начала про разные fence'ы. Чел в видео про них и говорил. Вова понес хуйню, что запись инта является атомарной операцией и барьеры нужны для сложных типов. Что лютая тупость. Барьеры нужны против кэшей и перестановки операций. Я ему тупо скинул ссылку, где все написано, но он ее осилить не смог. Что говорит о том, что он идиот. То есть тупее даже, чем голдробот, который получает два огра, но в барьерах разобрался. Что там было написано на си++, я не знаю, ибо ссылки не увидел. Но не удивлюсь, что там используется атомарная операция присваивания, которая на x86 всегда делает полный барьер и там похуй, какие ты рекомендации ты указывал по memory_order.
-
точно также "найти все граничные случаи и обработать их в тесте". "вызвать на другом потоке" это просто один из корнер кейсов контекста вызова твоей функции но как говорили выше тебе придется обдрочить весь код клоками/слипами/моками чтобы выразить эти граничные случаи в тесте. Есть куча многопоточных ошибок, которые тупо не воспроизводятся. Ты предлагаешь мне представить все возможные многопоточные ошибки, которые может допустить долбоеб, которые решит, что вот тут можно чуть-чуть оптимизировать? Я не знаю, как это сделать и я никогда не пишу код на потенциальные многопоточные ошибки (только валидирую, что моя изначальная многопоточная концепция класса работает). При этом для однопоточных ошибок - пишу, если кажется, что вероятность такой ошибки высока (естественно, все варианты я не покрываю). Например потому что кроме инта есть другие типы А они тут причем? ROFL. Кто-нибудь еще верит, что Вова работает в США за мегабаксы в секунду? Ты долбаеб? Ты дал ссылку на https://en.cppreference.com/w/cpp/atomic/memory_order Там в описании интерфейса нет речи про int Ахахаха. Он реально не понимает, для чего барьеры Понятно Снова ты обосрался и слился По факту будет что-то конкретное? Твои memory_order у меня используются в коде несколько страниц назад долбаеб Я по факту и сказал. Ты. Не понимаешь. Для чего. Барьеры. Памяти. Напрочь. Ибо по этой теме ты несешь просто лютейшую хуйню.
-
Например потому что кроме инта есть другие типы А они тут причем? ROFL. Кто-нибудь еще верит, что Вова работает в США за мегабаксы в секунду? Ты долбаеб? Ты дал ссылку на https://en.cppreference.com/w/cpp/atomic/memory_order Там в описании интерфейса нет речи про int Ахахаха. Он реально не понимает, для чего барьеры
-
Например потому что кроме инта есть другие типы А они тут причем? ROFL. Кто-нибудь еще верит, что Вова работает в США за мегабаксы в секунду? Учитывая, как часто государство ворует деньги у населения, ты чрезмерно оптимистичен
-
У меня есть функция, которая парсит строку. Я могу найти все граничные случаи и обработать их в тесте. Это надежно защитит код от долбоеба, который будет его рефакторить. Для дико сложной функции можно сделать fuzzy тест. Как мне защититься от того, что какой-то долбоеб вызовет функцию не на том потоке - я не знаю. Все что я могу сделать - это поставить в написанные мной функции ассерты на ожидаемый поток.
-
Слыхал про ключевую ставку Хочешь поговорить о ней? Хочу поговорить про барьеры памяти. Ты сказал, что Но в си++ есть такая штука: https://en.cppreference.com/w/cpp/atomic/memory_order Не подскажешь зачем, если проблем с присваиванием-чтением инта не бывает?
-
да ну ты прям перебираешь все комбинации всех состояний хотябы 1 функции? тоесть если передается инт, ты перебираешь все 2^32 состояний вручную и проверяешь результат каждой? это мы мы еще даже за рамки чистых функций не вышли а также более чем 1 интовый параметр многопоточный код тоже имеет конечное количество состояний и перебрать в ты их можешь тточо также как в однопоточном коде - только в своих мечтах Так тестировать все значения инта не нужно. И ты это прекрасно знаешь. Тест пишется прежде всего не для того, чтобы проверить, не ошибся ли ты. А для того, чтобы не внести ошибку при изменениях кода.
-
О_О Ебанутый просто читай что написано а не то что ты выдумал и не приписывай мне свой выдуманный бред Я же извинился. Чего ты? Ну подумал, что ты знаешь про ключевую ставку. Ошибся. Кто не ошибается?
-
а ты можешь написать тест который 100% отловят ошибки не конкаренси? и тут и там гарантий нет. есть только здравый смысл и инженерные практики по снижению вероятностей проблем Вообще-то могу. В однопоточном коде конечное количество состояний, которые я могу перебрать. А, действительно. Галя, у нас отмена. Вова все такой же тупой Тупой и слепой по факту ты У меня был ноль постов о ключевой ставке Хочешь опровергать тезисы который сам и придумал? можешь это делать и без постов на форуме Жуешь говно также как когда утверждал что map быстрее unordered_map Ути-пути, вова слюной брызжет и ругается. Как мило! Прости, что я посчитал, что ты умнее, чем ты есть. Больше не буду. Ты как там, разобрался, какие бывают барьеры памяти? А то по последним постам сложилось впечатление, что ты вообще в теме не понимаешь.
-
А, действительно. Галя, у нас отмена. Вова все такой же тупой
-
Гений экономики в треде. Сначала спиздел, что доллар вырос на 40%, хотя на самом деле только 37%. Потом, оказывается, у него инфляция привязана к доллару. Затем инфляция должна быть выше ключевой ставки. Ох, кажется, можно скоро бинго рисовать. Глянь инфляцию ща 1992 год Ого, Вова сам догадался, для чего повышают ключевую ставку
-
Тебе инфляцию любой калькулятор посчитает
-
С января 2019 года по январь 2024 года инфляция 42% откуд данные? Росстат, как я понимаю. А чего тебя удивляет?
-
С января 2019 года по январь 2024 года инфляция 42%
-
Ну если использовать локи так, как ты там расписывал, то конечно. При нормальном программировании в 99% случаев достаточно спинлока даже без фоллбэка на мьютекс. Вот рассмотрим простейшую концепцию мессейдж лупа. Это просто тред с очередью задач. Когда очередь пуста, естественно, поток должен засыпать, он не должен что-то там молоть, так как очередь может быть пуста длительное время. Кроме того, если задачи он обрабатывает разного рода, то потеря кэша для него не так уж страшна. Но вот потоки, которые будут класть задачи в очередь, засыпать не должны. Потому что постановка задачи в конец очереди занимает минимальное время. И тут достаточно спинлока. Поэтому и получается, что очередь должна быть защищена спинлоком, если она пуста, то поток просто сбрасывает событие и засыпает на нем. Как только в очередь будет положена первая задача, событие переходит в сигнальное состояние и поток просыпается. Ты похоже опять про разное. "что-то там молотить" это о дерганья атомиков в спинлоке. Брат, прочитай внимательнее что я написал пожалуйста, и что линух написал. Ладно голдробот ничего не понимает, потому что у него зп два огра, но линух то секет? Или нет? Хуйня там написана, о чем я выше уже сказал.
-
Норм продакшен. Не то, что у тупых хохлов с их идиотским музыкальным оформлением.
-
Боюсь, что до нее еще далеко.