Skip to content
StackPractices

Etiqueta: concurrency

Explora 35 recursos prácticos de ingeniería de software etiquetados con "concurrency". Descubre recetas de código, patrones de diseño, plantillas de documentación y guías detalladas para ayudarte a construir, desplegar y mantener soluciones listas para producción con concurrency.

Locking distribuido con Redis y Redlock

Implementa locks distribuidos con Redis para exclusion mutua entre procesos, usando SET NX con TTL y el algoritmo Redlock para confiabilidad

Patrones Async con Promises, Futures y Coroutines

Cómo escribir código concurrente eficiente usando async/await, promises, futures y coroutines en JavaScript, Python y Java para I/O no bloqueante y procesamiento paralelo.

Usar Estructuras de Datos Concurrentes para Colecciones

Cómo compartir colecciones entre threads de forma segura usando blocking queues, concurrent maps, copy-on-write lists y atomic counters en Java, Python y C++.

Construir Pipelines Async con C# async/await y Task.Run

Construir pipelines async en C# usando async/await, Task.Run, Task.WhenAll, Task.WhenAny, CancellationTokenSource, Channels y Parallel.ForEachAsync para I/O y CPU concurrente.

Coordinar Tareas Concurrentes con Communicating

Cómo estructurar programas concurrentes usando channels, select statements y goroutines para comunicación segura sin estado mutable compartido en Go, Rust y JavaScript.

Patrones Concurrentes con Go Goroutines y Channels

Construir sistemas concurrentes en Go usando goroutines, channels, select statements, worker pools, fan-out/fan-in, pipelines, context cancellation y rate limiting con tickers.

Componer Pipelines Asincronos con Java CompletableFuture

Construir pipelines async no bloqueantes en Java usando CompletableFuture con thenCompose, thenCombine, allOf, anyOf, manejo de excepciones, timeouts y thread pools personalizados.

Escalar Aplicaciones Concurrentes con Java Virtual Threads

Escalar aplicaciones Java con virtual threads de Project Loom. Usar Thread.ofVirtual, Executors.newVirtualThreadPerTaskExecutor, concurrencia estructurada y scoped values.

Coordinar Acceso Compartido con Locks, Mutexes y Semáforos

Cómo prevenir condiciones de carrera en programas concurrentes usando mutexes, read-write locks, semáforos y operaciones atómicas en Java, Python y C++.

Haz Peticiones HTTP Concurrentes con Python y aiohttp

Obtén datos de múltiples APIs concurrentemente usando asyncio y aiohttp. Cubre connection pooling, rate limiting, reintentos y procesamiento por lotes.

Ejecutar Tareas Async Concurrentes con asyncio.gather y

Ejecutar multiples operaciones async concurrentemente en Python usando asyncio.gather, asyncio.TaskGroup, manejo de errores con return_exceptions, timeouts y semaforos para rate limiting.

Rate Limiting de Operaciones Async con asyncio.Semaphore

Controlar la concurrencia en async Python usando asyncio.Semaphore para rate limiting de llamadas a API, conexiones a base de datos y acceso a recursos con patrones de paralelismo limitado.

Construir Sistemas Async con Rust Tokio Runtime

Construir sistemas async en Rust usando el runtime Tokio con tasks, channels, select, primitivas de sincronizacion, graceful shutdown y patrones de concurrencia estructurada.

Gestionar Trabajo Concurrente con Thread Pools y Executors

Cómo gestionar worker threads eficientemente usando thread pools, executors y políticas de rechazo en Java, Python y C# para cargas CPU-bound e I/O-bound.

Prevencion de Race Conditions en Codigo Async de JavaScript

Identifica y corrige race conditions en JavaScript asincrono usando secuenciacion apropiada, operaciones atomicas y patrones de Promise para ejecucion concurrente predecible

Prevencion y Resolucion de Deadlocks en Transacciones SQL

Identifica patrones de deadlock en bases de datos SQL, aplica ordenamiento consistente de locks, usa niveles de aislamiento apropiados e implementa logica de reintento para transacciones concurrentes resilientes

Implementar optimistic locking con versionado

Cómo implementar optimistic locking con versionado para prevenir actualizaciones perdidas en acceso concurrente a base de datos

Ejecutar Comandos Shell en Paralelo con Bash

Ejecuta múltiples comandos shell concurrentemente usando xargs, GNU parallel y background jobs.

Ejecución Paralela en Bash

Cómo ejecutar comandos de shell en paralelo con xargs, GNU parallel y trabajos en segundo plano de Bash controlando la concurrencia y recolectando resultados.

Ejecución Paralela de Jobs con Bash

Ejecuta comandos y scripts de shell en paralelo de forma segura usando xargs, GNU parallel o jobs en segundo plano.

Patrón Actor Model

Aislar estado en actores que se comunican solo via mensajes. Cada actor procesa un mensaje a la vez, eliminando bugs de concurrencia por estado compartido por diseno.

Patrón Distributed Lock

Coordina el acceso mutuamente exclusivo a recursos compartidos a través de nodos distribuidos usando un servicio de lock basado en consenso, previniendo race conditions en sistemas escalados.

Patrón Lock-Free Queue

Construir colas de alto throughput usando operaciones atomicas en lugar de locks. Multiples threads pueden encolar y desencolar concurrentemente sin bloqueo ni overhead de context-switch.

Patrón Producer-Consumer

Desacoplar produccion y consumo con una cola compartida. Los productores generan items a su propio ritmo; los consumidores los procesan independientemente a traves de un buffer.

Patron Serverless Throttling

Maneja backpressure en serverless usando SQS, token buckets y limites de concurrencia para proteger servicios downstream de trafico burst.

Patrón Thread Pool

Reutilizar un conjunto fijo de threads para tareas cortas en lugar de crear un thread por tarea. Reduce overhead y limita el uso de recursos bajo carga.

Runbook de Cancelacion de Async Tasks

Runbook para cancelar de forma segura long-running async tasks en Python, JavaScript, Go y Java: cancellation tokens, context propagation, resource cleanup, timeout strategies y graceful shutdown procedures con ejemplos de codigo.

Checklist de Debugging de Race Conditions

Checklist para identificar y fixear race conditions en concurrent code: symptom identification, reproduction strategies, debugging tools, common patterns, fixes usando locks, atomics, channels y prevention techniques con ejemplos de codigo.

Plantilla de Sizing de Thread Pools

Plantilla para documentar thread pool configuration per service: pool type selection, sizing formulas, CPU vs I/O bound tuning, queue strategies, rejection policies, monitoring metrics y tuning examples para Java, Python, Go y Node.js.

Referencia Detallada de Concurrencia en Go

Concurrencia en Go en produccion. Cubre goroutines, channels, context, select, sync primitives, worker pools, pipelines, fan-out/fan-in y patrones para aplicaciones Go concurrentes de alto throughput.

Referencia Detallada de Concurrencia en Java

Concurrencia en Java en produccion. Cubre threads, locks, CompletableFuture, virtual threads, executors, concurrent collections, memory model y patrones para aplicaciones paralelas de alto throughput.

Referencia Detallada de Python Asyncio en Producción

Ejecutar Python asyncio en produccion con confianza. Cubre event loops, gestion de tasks, debugging, cancellation, timeouts, backpressure y patrones para aplicaciones async de alta concurrencia.

Referencia Detallada de Python Asyncio

Master programación asincrónica en Python con asyncio. Cubre coroutines, tasks, event loops, async/await, gather, semaphores, queues, HTTP clients, websockets y debugging.

Referencia Detallada de Python Asyncio

Master programación asincrónica en Python con asyncio. Cubre coroutines, tasks, event loops, async/await, gather, semaphores, queues, HTTP clients, websockets y debugging.

Guía de Patrones de Concurrencia

Guía de patrones de concurrencia comunes y lo que funciona para escribir código concurrente seguro y eficiente.