Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[11]

var  

278 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

У нас же года 3 назад был какой-то железячник задрот нет?

Толи утка, толи еще какая херня его звали.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 19 минут назад:

Да в целом гроха все и написал.

Цпу читает память через кеш, как прослойку. Пишет тоже через нее.

При чтении собственно кешируется адресс из памяти, очевидно. Но при этом еще кешируется некоторый объем данных вокруг конкретно нужного адресса памяти. Этот объем чето около 100 байт, он и называется кеш линией.

Раз это кеш, то конкретная ячейка из RAM в кеше может быть только в одном виде (твоя переменная условно).

Далее, этот кеш делится между ядрами. Ядра пишут в память через кеши обратно, с каким-то там размером пайплайна на запись. Соответственно с одной кеш линией в общем случае может работать множество ядер одновременно.

В случае атомарных операций вся линия лочится к хуям (читать с нее может только одно ядро), ожидается пока то что уже там на молотили ядра и хотели записать в кеш запишется, потом из нее читает одно ядро, выполняет работу пишет анлокает.

Потому атомик может подзадушить вообще все что на одном процессе с ней находится. В теории. На деле похуй, плюс похуй, если ты не начинаешь атомики за место интов юзать (я видел такое говно). Потому что кеш линий дохуя, и наврятли все твои 10 потоков в одной кеш линии зависнут, если не захотят одновременно с атомиком поработать. Хотя я не знаю как согласованность кешей работает (L1, L2), но они быстрые пиздец, сами понимаете. Потому я и говорил что в однопотоке похуй+похуй если ты там чутка лишними атомиками обмазался, и умный указатель у тебя по доброте душевной атомик, а не просто инт.

 

 

Далее, барьером называется потому что все что до атомика происходит в твоем коде выполнится.

Написал ты

y ++;

x ++;

z ++;

atomic_store(z);

 

Все эти y,x,z компилятор может перетасовать как хочет, в каком хочет порядке. Пайплайн у процессора так же. То как в коде описано, не факт что будет так же как выполнится.

Однако, когда дойдет до атомика исполнения, это значит что все что выше выполнилось однозначно. И так же у соседнего потока с этим же атомиком, у которого вообще другие не связанные с синхронизациями функции выполнялись до атомика. Даже если атомик "свободен". Вот тебе и "барьер". С помощью таких барьеров можно сделать машинарию и обеспечить трейдсейф работу с "обычными" типами, даже не используя явный мутекст.

 

Но на самом деле этих барьеров больше одного, и лок кеш линий/записей может быть разный, а есть его варации. std::memory_order. Чето типа std::shared_lock/std::unique_lock. Можно себя этим наебнуть очень легко.

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

UPD: Вопрос конечно где я напиздел и помню не правильно. Яб тоже почитал какой научпоп на эту тему с удовольствием.

я правильно понимаю, что лок/анлок кэш линии будет только во время операции с самим атомик элементом?

Поделиться сообщением


Ссылка на сообщение

 

GoldRobot написал 17 минут назад:
Grohuf написал 2 часа назад:

Там все до предела автоматизировано

Ага, вижу. AddRef, RemoveRef, Release.

А если тег поставить, чтоб считало с 1, то ты споткнешься на local_ptr.

 

Grohuf написал 2 часа назад:

Ну я уже понял, что ты настолько тупой, что не догнал, что я просто максимально упростил предлагаемый тобой тест. Ты предлагал написать в коде функции лок у другого класса. Вызвать функцию у другого класса, сделать анлок у другого класса. А потом в тесте нахуячить проверку, что вызван лок у другого класса, вызвана рабочая функция у другого класса, вызван анлок у другого класса. Я написал тоже самое. Присвоил единицу переменную у другого класса и проверил что присвоена единица. Такой же идиотизм, что предлагаешь ты. 

Во, об этом и речь. Ты в меру своего скудного разумения мокинга и тестов, собственно, и написал тест. Как умеешь, как знаешь.

Такую хуйню можно изобразить только в страшном сне.

Что нужно было сделать, какая библотека для мокингов это позволит сделать красиво, я уже сказал.

Флажки он блять тестит. Произошел мем "я не тупой я просто тролю".

Я пытался. Но ты и впрямь просто дурак. AddRef у него ручками вызывается :avtorklif:. А если я ему скажу, что иногда реально вызывается, то у него инфаркт жопы случится.

Про тест - это просто кринж. Тупоголовый еблан думает, что если он напишет EXPECT_CALL, то его дерьмо-тест станет золотым. Алхимик, ебаный.

Походу зпшка в два огра и впрямь твой предел. Это пиздец, как будто с полным кретином разговариваю.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 5 минут назад:

Про тест - это просто кринж. Тупоголовый еблан думает, что если он напишет EXPECT_CALL, то его дерьмо-тест станет золотым. Алхимик, ебаный.

 

Ну лучше как ты bool tested_flag_ = false в классы вписывать, и ассертить их после теста.

Ух блять юнит тест от бога.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 14 минут назад:
Grohuf написал 20 минут назад:

Про тест - это просто кринж. Тупоголовый еблан думает, что если он напишет EXPECT_CALL, то его дерьмо-тест станет золотым. Алхимик, ебаный.

 

Ну лучше как ты bool tested_flag_ = false в классы вписывать, и ассертить их после теста.

Ух блять юнит тест от бога.

Я уже понял, что ты ни хуя не понял, для чего написано так. Я по мнению еблана, должен был писать на каком-то фреймворке, не зная, имеете ли вы знания о нем. Ахуеть. А чего ты сам раньше свои объяснения на GMOCK не писал? Не знаешь что ли?

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 20 минут назад:

я правильно понимаю, что лок/анлок кэш линии будет только во время операции с самим атомик элементом?

Да. Инкремент какойнить, сумма, экчейндж это прям ассемблером одна инструкция которая залочит пока инструкция не выполнится.

Grohuf написал 3 минуты назад:

Я по мнению еблана, должен был писать на каком-то фреймворке, не зная, имеете ли вы знания о нем. Ахуеть.

О, нет. Прикол в том что ты даже не на псевдоязыке написал хуйню. EXPECT_CALL, Verify. Любое что-то знакомое.

Ты полез модифицировать сам, тестируемый, класс. У тебя фундоментально слова "вызвались в таком таком порядке" пришли к флажкам в классе.

 

Grohuf написал 8 минут назад:

А чего ты сам раньше свои объяснения на GMOCK не писал? Не знаешь что ли?

Потому что я писал то что нужно тестировать, как, для чего, и что этим можно добиться. И обсуждал с тобой и дуитом это.

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

UPD: Чето я подзаебался, если честно, уже эту хуйню из одного в другое перегонять. Люблю вас (не всех (мунфагыча и его друзей не люблю(но он сдох похоже))).


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 3 минуты назад:

О, нет. Прикол в том что ты даже не на псевдоязыке написал хуйню. EXPECT_CALL, Verify. Любое что-то знакомое.

Ты полез модифицировать сам, тестируемый, класс. У тебя фундоментально слова "вызвались в таком таком порядке" пришли к флажкам в классе.

То есть, когда GR вызывает приватную функцию класса lock() - это ок. Когда я показываю, что он пишет хуйню и просто меняю переменную - это другое :onneponimaet:

GoldRobot написал 4 минуты назад:

Потому что я писал то что нужно тестировать, как, для чего, и что этим можно добиться. И обсуждал с тобой и дуитом это.

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

Ты писал: вызвать функцию а1, а2, а3. Потом проверить, что а1, а2 и а3 вызвались в этом порядке. Тебе еблану говорят, что это  хуйня, а не тест. Тест, который тупо копирует содержимое функции - говно из жопы. Из экспектами он не превратится в золото.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 6 минут назад:

Ты писал: вызвать функцию а1, а2, а3. Потом проверить, что а1, а2 и а3 вызвались в этом порядке. Тебе еблану говорят, что это  хуйня, а не тест. Тест, который тупо копирует содержимое функции - говно из жопы. Из экспектами он не превратится в золото.

Блять, гроха, ебаный стыд.

Я описал идею того, как это делается, и как я считаю это правильным. Я взял выраженный пример.

Мне что нужно было, посидеть сейчас и повыдумывать тебе что то сложнее? С ифами и прочим? Нужно было синженерить тебе класс какимнибудь сокетом? Придумать логику, тесты к ней, и расписать?

Ты сам не можешь представить себе просто работу я хуй знает, с базой? Там где у тебя паралельно connect, reconnect, exec, disconnect, stats, healthcheck, soft_stop и тебе нужно это скомутировать через логику. С очередями потоко безопасными, калбеками на пуки, таймаутами, и реконнектами скрытыми в этом классе.

Но логику которого ты блять должен продумать, реализовать, и быть увереным что она отработала так как ты это нарисовал в голове посмотрев просто на цепочку EXPECT_CALL. И быть увереным что хотя бы нарисованные в голове сценарии ты сделал правильно. Не говоря уже о том чтобы это как-то зафиксировать. Это и нужно тестировать, если ты хочешь сделать надежно. Это и нужно абстрагировать. Эту логику. И это я сказал десять раз уже.

Но ты тролишь тупостью "хахаха он хочет std::mutex::lock тестить". Подискутировали, спасибо хорош.

 

Фпизду, сегодня с тобой на эту тему говорить больше не буду, невижу смысла.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
GoldRobot написал 1 час назад:

И быть увереным что хотя бы нарисованные в голове сценарии ты сделал правильно.

дак ты это не можешь кроме как на бумаге в большом количестве случаев
если у тебя барьерны доступы в памяти и нет просто тупого лока/мьютекса - эта вся хуйню не может быть адекватно протестирована, только если ты влепишь слип после каждой строчки

и то слип+мокирование часов сами по себе нарушают поведение в продакшене так что ты протестил возможно 1 кейс из 1кк равновероятных, и адекватность написания таких тестов сомнительна 

 

я согласен что фраза "это невозможно протестировать" не корректна сама по себе и офк я имел ввиду "это (зачастую) невозможно (нецелесообразно) протестировать"

но тезис в мто что многие вещи в сложном многопотоке (а не в хуйне с мутексами) проще доказать на бумаге и задокументировать чем пытаться протестировать

GoldRobot написал 3 часа назад:

Только лично я ебал в этих сортах разбираться

ну вот вся суть робота

если до этого ты говорил про многопоток как примитивную хуйню с мутексами - то согласен что это не так сложно протестить

в целом я согласен что кейс нишевый

 

но я такую хуйню встречал даже в сраном джава-скала коде, не то чтобы в плюсах

иногда это были кишки движка асинхронного рантайма, который как раз таки не мог себе позволить мутексы тк это кор перформанса всей программы. мне это надо было чтобы траблшутнуть баг и понять что в рантайме что-то возможно или нет

иногда это были ошибки других прогеров которые не опнимали что написали не тредсейф в том что будет вызвано многопоточной среде


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Шо вы душнилы, всё душите?


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 44 минуты назад:

я согласен что фраза "это невозможно протестировать" не корректна сама по себе и офк я имел ввиду "это (зачастую) невозможно (нецелесообразно) протестировать"

но тезис в мто что многие вещи в сложном многопотоке (а не в хуйне с мутексами) проще доказать на бумаге и задокументировать чем пытаться протестировать

Согласен. Это и пытался донести.

Just.Doit написал 44 минуты назад:

иногда это были кишки движка асинхронного рантайма, который как раз таки не мог себе позволить мутексы тк это кор перформанса всей программы. мне это надо было чтобы траблшутнуть баг и понять что в рантайме что-то возможно или нет

Конечно. Я сразу сказал что это дорого.

Зачастую даже код который хорошо написан так что бы быть пригодным к тестам сложнее в поддерживаемости нежели код хорошо написанный но не пригодный.

Асбтракции, безопасность, удобство, чистота, это все не бесплатно. А тестируемость фундаментально означат оверхед (не только в перфе). И грязный иф в потрохах может быть лучше чем альтернатива из х2 строк кода и абстракций.

Rooster написал 38 минут назад:

Шо вы душнилы, всё душите?

Само собой. И не заканчивали. На том и стоим.


Изменено пользователем GoldRobot

ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
Vova написал 9 часов назад:

Test:

  clock.mock()

  a_time = 8

  b_time = 2

  c_time = 5

  C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

  clock.tick(max(a_time,b_time) + c_time + 1)

  exception = false

  try

      C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

      clock.tick(max(a_time,b_time) + c_time - 1)

  catch

     exception = true

  assert(exception)

 

Я за пять минут написал многопоточный тест. А ебланы до сих спор спорят о возможности / уникальной сложности тестирования многопотока.

 

:zemlyapuhom:


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
faceles5 написал 31.05.2024 в 16:59:

привет камунити, у меня вопрос: те кто уже достаточно давно в этой области работают и имеют не малый опыт, скажите как часто вы работали или сталкивались с паралелизмом и асинхронщиной(да я знаю что это не одно и тоже)? и что самое сложное было при работе с ними?

Надеюсь ты доволен. :prichina_tryaski:
Рассорил крестовичков.:pepehands:
 

faceles5 и GoldRobot понравилось это

 

DB

59221730.png


Я - гений, ёпта

bfe7003be27e8e81ce6a7d2d8192e9ae.jpg


22


msg-93176-0-72842500-1438846470_thumb.jpg

Поделиться сообщением


Ссылка на сообщение

Вы походу не программисты а гуманитарии-шарлатаны из сферы ОЙТИ

GoldRobot понравилось это

towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Vova написал 33 минуты назад:
Vova написал 10 часов назад:

Test:

  clock.mock()

  a_time = 8

  b_time = 2

  c_time = 5

  C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

  clock.tick(max(a_time,b_time) + c_time + 1)

  exception = false

  try

      C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

      clock.tick(max(a_time,b_time) + c_time - 1)

  catch

     exception = true

  assert(exception)

 

Я за пять минут написал многопоточный тест. А ебланы до сих спор спорят о возможности / уникальной сложности тестирования многопотока.

 

:zemlyapuhom:

я прогнал твой тест

он зеленый 

но баг не отловлен

 

а погоди, не так скопировал твой тест. поправил как у тебя написано, но теперь он всегда красный независимо от наличия бага - возможно проблема в том что мой код никогад не кидает эксепшн и ассерт всегда false


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)
GoldRobot написал 3 часа назад:
Grohuf написал 4 часа назад:

Ты писал: вызвать функцию а1, а2, а3. Потом проверить, что а1, а2 и а3 вызвались в этом порядке. Тебе еблану говорят, что это  хуйня, а не тест. Тест, который тупо копирует содержимое функции - говно из жопы. Из экспектами он не превратится в золото.

Блять, гроха, ебаный стыд.

Я описал идею того, как это делается, и как я считаю это правильным. Я взял выраженный пример.

Мне что нужно было, посидеть сейчас и повыдумывать тебе что то сложнее? С ифами и прочим? Нужно было синженерить тебе класс какимнибудь сокетом? Придумать логику, тесты к ней, и расписать?

Ты сам не можешь представить себе просто работу я хуй знает, с базой? Там где у тебя паралельно connect, reconnect, exec, disconnect, stats, healthcheck, soft_stop и тебе нужно это скомутировать через логику. С очередями потоко безопасными, калбеками на пуки, таймаутами, и реконнектами скрытыми в этом классе.

Но логику которого ты блять должен продумать, реализовать, и быть увереным что она отработала так как ты это нарисовал в голове посмотрев просто на цепочку EXPECT_CALL. И быть увереным что хотя бы нарисованные в голове сценарии ты сделал правильно. Не говоря уже о том чтобы это как-то зафиксировать. Это и нужно тестировать, если ты хочешь сделать надежно. Это и нужно абстрагировать. Эту логику. И это я сказал десять раз уже.

Но ты тролишь тупостью "хахаха он хочет std::mutex::lock тестить". Подискутировали, спасибо хорош.

 

Фпизду, сегодня с тобой на эту тему говорить больше не буду, невижу смысла.

А зачем во всем тобой перечисленном локи?

Vova написал 57 минут назад:
Vova написал 10 часов назад:

Test:

  clock.mock()

  a_time = 8

  b_time = 2

  c_time = 5

  C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

  clock.tick(max(a_time,b_time) + c_time + 1)

  exception = false

  try

      C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

      clock.tick(max(a_time,b_time) + c_time - 1)

  catch

     exception = true

  assert(exception)

 

Я за пять минут написал многопоточный тест. А ебланы до сих спор спорят о возможности / уникальной сложности тестирования многопотока.

 

:zemlyapuhom:

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


Изменено пользователем Grohuf

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 56 минут назад:
Vova написал 1 час назад:
Vova написал 11 часов назад:

Test:

  clock.mock()

  a_time = 8

  b_time = 2

  c_time = 5

  C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

  clock.tick(max(a_time,b_time) + c_time + 1)

  exception = false

  try

      C_starts_after_A_and_B_finished(a: ()=> clock.sleep(a_time), b: ()=> clock.sleep(b_time), c: ()=> clock.sleep(c_time))

      clock.tick(max(a_time,b_time) + c_time - 1)

  catch

     exception = true

  assert(exception)

 

Я за пять минут написал многопоточный тест. А ебланы до сих спор спорят о возможности / уникальной сложности тестирования многопотока.

 

:zemlyapuhom:

я прогнал твой тест

он зеленый 

но баг не отловлен

 

а погоди, не так скопировал твой тест. поправил как у тебя написано, но теперь он всегда красный независимо от наличия бага - возможно проблема в том что мой код никогад не кидает эксепшн и ассерт всегда false

 

 

Покеж код или пиздабол.

 

А продакшн код тут и не обязан кидать эксепшн. Возможно ты не монял как мой тест работает тк не знаешь моки времени

 

Эксепшн тут МОЖЕТ бросить вечное ожидание sleep() - так как это псевдокод говорить что-то конкренее нет смысла

 

Вместо проверки на эксепшн можно делать assert_fails() assert_throws() и тд в зависимости от конкретного языка но суть никак не меняется


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение

Замокай время и сделай clock.tick до того момента как в топане сменят тему с потокосрача 

Поделиться сообщением


Ссылка на сообщение
Index написал 10 минут назад:

Замокай время и сделай clock.tick до того момента как в топане сменят тему с потокосрача 

 

Потокосрач забавен тем что почти никто из участвующих не пишет многопоточность 99% времени и не пишет топочные тесты - в последнем открыто признаются

 

Зато каждый считает себя неебаца экспертом по теме

 

У меня вот нет уверенности что @Just.Doit или @Grohuf могут реализовать простенький многопоточный класс интерфейс C_starts_after_A_and_B_finished из моего теста

 

Зато обсудить как с точки зрения архитектуры компьютера сделаны memory_barrier - это они в первых рядах


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Vova написал 39 минут назад:

У меня вот нет уверенности что @Just.Doit или @Grohuf могут реализовать простенький многопоточный класс интерфейс C_starts_after_A_and_B_finished из моего теста

в скале 1 строчка с библиотекой io, писал такое по кд, весь код был в этом

только как я не ебу что ты там подразумеваешь в своем псевдо коде, так и тут не ебу что ты там подразумеваешь в требованиях к этому коды

3 лямбды друг за другом вызвать не сложно в любом языке

только кто ебет что ты там под этим подразумеваешь - какие требования по скорости и тп, что ты вообще подразумеваешь под "простенький многопоточный класс" - все в synchronized секции (мутекс) это многопоточный код или нет?

я не уверен что ты понимаешь что либо про канкаренси, учитывая какую хуйню ты вбрасываешь как в виде псевдокода так и последующих нелепых пояснения что же ты там имел ввиду

вон выше индекс кидывал про семантики канкаренси кода в жвм - мне понятно как это работает, и я даже решал прод задачи на знание этого

а тебе? ты понимаешь чем plain отличается от opaque, rel/aq и volatile?


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...