От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 2)

В первой части статьи были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критические секции, атомарные переменные, реактивные переменные, барьерная синхронизация. В этой части будут разобраны другие важные подходы: семафоры, каналы передачи данных, горячие потоки, модель акторов, последовательные обработчики задач, thread confinement. Для каждого из этих подходов рассмотрим конкретные реализации, выделим плюсы и минусы, приведём примеры использования. В конце объединим все реализации в общую таблицу.

https://habr.com/ru/companies/garage8/articles/1049508/

#kotlin #kotlin_coroutines #coroutines #multithreading #concurrency #android #android_development #kotlin_multiplatform #semaphore #actors

От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 2)

В первой части статьи  были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критические секции, атомарные переменные,...

Хабр

CancelledError — не просто очередная ошибка. Разбираемся, как устроена отмена задач в asyncio

Это первая из двух статей о CancelledError — сигнале отмены задачи. В ней мы остановимся на стандартном asyncio. Узнаем, что на самом деле представляет собой CancelledError , с точки зрения event‑loop. Разберёмся, как работает счётчик отмены ( cancel/uncancel ), на котором построены TaskGroup и asyncio.timeout . Наконец, обсудим проблемы, которые возникают на практике, в первую очередь связанные с asyncio.shield .

https://habr.com/ru/companies/tochka/articles/1048468/

#python #asyncio #concurrency #бэкенд #web

CancelledError — не просто очередная ошибка. Разбираемся, как устроена отмена задач в asyncio

При работе с асинхронным кодом нам часто приходится обрабатывать CancelledError — сигнал отмены задачи. С точки зрения приложения это выглядит как обычное исключение — достаточно добавить try/except...

Хабр

Ruby 구문 및 고급 기능 종합 가이드

Ruby는 리터럴, 변수, 제어 흐름, 메서드, 클래스를 포함한 광범위한 핵심 구문과 함께 블록, 모듈, 예외 처리, I/O 등 풍부한 고급 기능을 제공합니다.

🔗 원문 보기

Ruby 구문 및 고급 기능 종합 가이드

Ruby는 리터럴, 변수, 제어 흐름, 메서드, 클래스를 포함한 광범위한 핵심 구문과 함께 블록, 모듈, 예외 처리, I/O 등 풍부한 고급 기능을 제공합니다.

Ruby-News

Rails 8의 load_async를 활용한 성능 향상: 비동기 레코드 로딩 심층 분석

Rails 8의 load_async는 ActiveRecord 연관 관계를 비동기적으로 로딩하여 데이터베이스 쿼리를 병렬로 실행함으로써 애플리케이션 성능을 획기적으로 개선합니다.

🔗 원문 보기

Rails 8의 load_async를 활용한 성능 향상: 비동기 레코드 로딩 심층 분석

Rails 8의 load_async는 ActiveRecord 연관 관계를 비동기적으로 로딩하여 데이터베이스 쿼리를 병렬로 실행함으로써 애플리케이션 성능을 획기적으로 개선합니다.

Ruby-News

Episode 30 of @RuntimeArguments is live at RuntimeArguments.fm — "Available compute: way more than you need, right up until you need it." Wolf @YesJustWolf leads a deep dive into why almost every program you've ever written has wasted most of the hardware it runs on, while Jim @jammcq brings the infrastructure angle on what happens when one machine genuinely isn't enough. Concurrency and parallelism aren't the same answer — maybe they aren't even the same problem. This episode maps the whole stack from SIMD up through goroutines, async/await, and actor models, takes a hard look at GPU transfer costs (and why Apple Silicon sidesteps them for some kinds of problems), and lands on the one truth that unites everything: shared state is your enemy.

As always, we want to know what you think:

[email protected]

https://www.buzzsprout.com/2469780/19333401-30-available-compute-way-more-than-you-need-right-up-until-you-need-it

#Podcast #TechPodcast #Concurrency #Parallelism #Python #Go #Rust #AsyncAwait #GPU #AppleSilicon #PerformanceEngineering #SoftwareDevelopment

엘로퀀트 루비, 제2판

Ruby 언어에 대한 깊이 있는 이해와 숙련된 프로그래머처럼 사고하는 방식을 통해 더 명확하고 효율적인 Ruby 코드를 작성하는 방법을 제시합니다.

🔗 원문 보기

엘로퀀트 루비, 제2판

Ruby 언어에 대한 깊이 있는 이해와 숙련된 프로그래머처럼 사고하는 방식을 통해 더 명확하고 효율적인 Ruby 코드를 작성하는 방법을 제시합니다.

Ruby-News

RubyLLM 1.16: 병렬 도구 실행, Rails 스타일 계측 및 API 베이스 설정 지원

독립적인 도구 호출을 병렬로 처리하는 동시성 기능을 도입해 I/O 대기 시간을 줄이고 전체 응답 속도를 개선했다.

🔗 원문 보기

Dead Letter Queue в Kafka на практике

DLQ — это просто топик. Сложное — всё, что вокруг него. Эта статья — про практическую архитектуру обработки событий из Kafka с отправкой данных во внешний REST API. Главная проблема такого сценария — нестабильность внешнего API. Он периодически деградирует по latency или начинает отвечать с ошибками, и это напрямую влияет на пропускную способность всего консьюмера.

https://habr.com/ru/articles/1045324/

#kafka #concurrency #asyncio #semaphore #finite_state_machine #dead_letter_queue #highload #api

Dead Letter Queue в Kafka на практике

DLQ — это просто топик. Сложное — всё, что вокруг него. Эта статья — про практическую архитектуру обработки событий из Kafka с отправкой данных во внешний REST API. Главная проблема такого сценария —...

Хабр
إهداء: الحل الجذري لثغرة الـ Race Condition في الأنظمة عالية الضغط
تُعد الـ (Pessimistic Locking) التقليدية اختناقاً (Bottleneck) يضعف الأداء ويفتح ثغرات ضياع البيانات (Lost Updates).
الحل: التحول لنمط (Atomic State-Transition) عبر الـ (CAS).
بدلاً من حجز الموارد، ندمج التحقق والتحديث في عملية ذرية واحدة تضمن سلامة الحالة وأداءً حتمياً (Deterministic)
هذا إهداء بسيط من إمكانياتنا؛ لرفع مستوى الأمان في أنظمتكم. نطور معماريات تنهي مشاكل الـ Performance والأمان جذرياً. تواصلوا معنا.
#Concurrency

10 вопросов на Go собеседовании, которые валят большинство джунов

Готовиться к Go-собеседованию по списку с GitHub — значит знать ровно то же, что знают все остальные. Интервьюеры это чувствуют сразу. В этой статье — 10 вопросов, которые реально задают на Golang Junior собеседованиях, с разбором так, как это объяснили бы вам после интервью на обратной связи.

https://habr.com/ru/articles/1045104/

#golang #go #собеседование #junior #goroutine #concurrency #channel #defer #slice #interface

10 вопросов на Go собеседовании, которые валят большинство джунов

Готовиться к Go-собеседованию по списку с GitHub — значит знать ровно то же, что знают все остальные. Интервьюеры это чувствуют сразу. В этой статье — 10 вопросов, которые реально задают на Golang...

Хабр