Рубрика «велосипеды» - 5

Комментарий Сандро Кипиани, генерального конструктора проекта К28А, к статье «Проект К28А или велосипед нового поколения»

Читать полностью »

MHook vs ZumaТут не совсем про зуму, и не совсем про mhook. Дело в том, что я сделал небольшую обертку над mhook (чтобы помочь своему труду), хотел бы показать что получилось, как я его использую, и получить немного конструктивной критику. А чтобы не использовать синтетических примеров, пойду по накатанной, и поиздеваюсь над zuma. Рассказывать я буду в такой последовательности: сначала пара слов (действительно мало) о том как перехватывает mhook, потом немного о том как я это использовал, затем опишу что я все-таки сделал, и закончу тем, что вживлю пару электродов в любимую жабку. Так что сами можете решать что вам интересно, и соответственно, с чего начинать читать.
Читать полностью »

Здравствуйте, многоуважаемые Хабровчане.

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

image
Читать полностью »

Сегодня я расскажу про дизайн тривиального concurrent-класса в JDK. Может быть, это будет удобнее, чем абстрактно объяснять разные концепции из JMM и concurrent-кода.

Все продвинутые парни знают, что такое Future<V> — это обещание предоставить результат типа V. Future'ы удобны, чтобы предоставлять результат асинхронных задач. Например, ExecutorService возвращает Future для описания результата задачи, которая когда-нибудь выполнится в thread pool'е.

Частенько в написании хардкорного concurrent-кода требуется такой примитив, как SettableFuture<V>, который будет выполнять все функции Future<V>, но в который можно будет также выставить значение из другого потока. Эдакий асинхронный mailbox.

За свою недолгую жизнь я видел несколько вариантов реализации такого SettableFuture, рассмотрим некоторые из них, и на заботливо разложенные в них грабли. Большинство примеров реально существовали, некоторые из них были домыслены ради плавности изложения. Чтобы вам не было сильно скучно, попробуйте не читать объяснение после каждого примера, а найти грабли самостоятельно. Для уменьшения простыни мы реализуем только методы set() и get(). Все персонажи вымышлены, хотя пост и основан на реальных событиях.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js