Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
- я читаю волатайл
- волатайл говорит мне, что там ничего для меня нет
- тут тред вытесняется
- другой тред добавляет элемент и пишет волатайл
- первый тред просыпается и уходит в wait() или аналог, несмотря на то, что элемент уже доступен
- если не будет следующего элемента, то он и не проснется никогда
Раз там сеть, то, скорее всего, самое логичное делать это тред локально и тогда избегать лишних атомик операций
Читать полностью…Там последний абзац про то, что пилить конкретно вот это я не знаю как.
В этой истории не существует реального проекта, где это нужно положить, я как могу отбиваюсь <известной фразой>, чтобы минимизировать количество XY-советов. Да и сам паттерн вообще жизнеспособен в редких (но не невозможных) условиях, если допустима ситуация, что всё может колом встать, то это должно быть штатным поведением, и тогда у системы в целом нет требований по суперчарджу позитивной обстановки. Есть просто теория в голове, как можно выдрочить один известный инструмент (этого не произойдет, это просто разминка для мозга), в него можно добавить пул объектов для i/o, пользователь скорее всего хотел бы выставить некоторую максимальную планку на количество объектов, но при этом минимизировать латенси (= отказ от ожидания по таймауту) и лишнее потребление цпу (= отказ от длительных спинлоков). Ну и там пошло поехало "а как мы в таких ситуациях можем выжать вообще максимальный пирформанс?"
Хотя там мутекс-то под условием. Завтра попробую посмотреть.
Читать полностью…Яп про который упоминается
Интересно это обсудить в свете того что прямо в readme он сравнивает с golang
Прикольная статья, мне непонятно почему у неё очень много дизлайков
Самое интересное что в конце упоминается свой собственный язык и ссылка на него на github
Можно сказать что это бесполезный язык, однако там 882 звезды и 13 контрибьюторов, для пэт-проекта по-моему дохуя )))
Под капотом работает на голланг
Прочитав передние мне понравились идеи и фишки, а вот синтаксис не очень, не привык я к синтаксиса функциональных языков
Всем привет, я тут нашёл статейку а в ней упоминается новый язык, выглядит очень интересно
Читать полностью…Ну по функциональным требованиям вроде удовлетворяет, а насчет сигналирования, так почти каждая очередь работает(aqs-примитивы точно, спинлоки особо не популярны же)
Читать полностью…Я не знаю, как работает канал в го. Мне достаточно будет трюка, который позволяет обойти конкретный пример, я уверен, что человечество не такое тупое, как я, и что-то уже придумало для этого. Если есть удовлетворяющий характеристикам пример, то можно на него посмотреть, но мне сдается, что там контракт немного про другие вещи, нежели наличие или отсутствие блокировок.
Читать полностью…Чего-то обычного нет, высокоинтеллектального тоже. Онколл, добавить мелкую хуйню, переписать существующую, чтобы руками по тысячу копий не создавали, починить сервис, в тиме которого когда-то работал, объяснить людям в этом сервисе, что у них сломалось, найти где латенси проебалась и загнать в условия куски кода, когда его нет необходимости выполнять, покачать головой, сделать вид, что важное дело делаем, пойти сделать кофе-брейк.
Читать полностью…почему не словит? у тебя либо волатайл говорит что есть новое событие, либо ты уже в вейте ждешь и просыпаешь от того что есть событие. Добавь дабл чек если вдруг недо убедиться
Читать полностью…А еще можешь посмотреть как у FJP воркстилинг работает. Мне кажется частично покрывает твой кейс. Вот только на счет ожидания без тайм-аута я не уверен.
Читать полностью…В такой блокировке можно не словить публикацию объекта из-за описанной проблемы, в этом и загвоздка.
Сам по себе волатайл не поможет, скорее нужен cas, т.к. из очереди только один консюмер можетдостать сообщение.
Ну пока тут минимал это чтение волатайл переменной хотя бы раз в 1к итераций (считая по локалтреду), и потом по не хеппи пас уже в блокировки на локи со всякими вейтами или семафорами
Читать полностью…А пробовал просто под себя запилить что надо? Или просто ищешь аналог уже реализованный со знанием как сделать самому
Читать полностью…https://lmax-exchange.github.io/disruptor/user-guide/index.html#_alternative_wait_strategies
Там либо целиком блокирующая история, либо вариации спинлока, с таймаутами и без.
https://github.com/LMAX-Exchange/disruptor/blob/master/src/main/java/com/lmax/disruptor/BlockingWaitStrategy.java
GitHub - nevalang/neva: Next-generation programming language that solves programmers' problems
https://github.com/nevalang/neva
Почему JS (и TS) это плохой язык / Хабр
https://habr.com/ru/articles/905480/
Там одновременно и отсутствие критической секции в позитивном случае, и наличие в негативном?
Читать полностью…Да ничего обычного нет, просто в целях академического интереса написал новую версию java, сделал кофе-брейк. Так и работаем по немногу, всего лишь делаем умный вид
Читать полностью…На самом деле, интересно читать твои вопросы и рассуждения.
Читать полностью…