Un crate de Rust con herramientas de concurrencia: colas lock-free, deques con robo de trabajo, canales, GC basado en épocas, atomics e hilos con ámbito.
ruby-concurrency/concurrent-ruby
Una gema de Ruby con primitivas de concurrencia como futures, promises, pools de hilos, agents, atoms, colecciones thread-safe y clases de sincronización.
- Estrellas
- 5,837
- Forks
- 423
- Issues abiertos
- 53
- Último commit
- hace 8 días
¿Qué es?
Concurrent Ruby es una gema que ofrece un amplio conjunto de abstracciones de concurrencia para aplicaciones Ruby. Incluye herramientas asíncronas como Promises (un framework unificado de futures y promises), ScheduledTask y TimerTask, además de pools de hilos y otros executors inspirados en Java.
La biblioteca también ofrece objetos de valor y colecciones thread-safe, incluidas subclases thread-safe de Array, Hash y Set, un Map de alta concurrencia, structs inmutables y mutables, y tipos atómicos como AtomicReference y AtomicFixnum. Para gestionar estado compartido, proporciona Agent y Atom al estilo de Clojure, además de TVar para memoria transaccional de software y clases de sincronización como CountDownLatch, Semaphore y ReadWriteLock.
La gema está diseñada para no tener dependencias externas de otras gemas y funciona en MRI, JRuby y TruffleRuby. Las extensiones opcionales en C para MRI están disponibles en una gema aparte, concurrent-ruby-ext, y las funciones experimentales, como Actor y Channel, se encuentran en la gema complementaria concurrent-ruby-edge.
Funciones clave
- 01Framework de Promises que combina futures, promises y evaluación diferida.
- 02Pools de hilos y otros executors inspirados en el paquete de concurrencia de Java.
- 03Colecciones thread-safe de Array, Hash, Set y Map.
- 04Referencias, contadores y booleanos atómicos para actualizaciones sin bloqueos.
- 05Agent y Atom para gestionar estado compartido, además de TVar para memoria transaccional.
- 06Primitivas de sincronización, como CountDownLatch, Semaphore y ReadWriteLock.
Casos de uso
- Ejecutar tareas en segundo plano o tareas de E/S en paralelo en un servicio Ruby sin añadir dependencias externas.
- Coordinar varios hilos con latches, barreras o semáforos.
- Programar tareas periódicas o diferidas dentro de un proceso Ruby.
- Compartir estado mutable de forma segura entre hilos mediante atoms o colecciones thread-safe.
Antes de usarlo
- No se pudo detectar la licencia en los metadatos, así que consulta el archivo de licencia del repositorio antes de usarlo.
- Las funciones de la gema complementaria concurrent-ruby-edge pueden cambiar con frecuencia y dejar de ser compatibles con versiones anteriores.
Temas
Preguntas frecuentes
- ¿Qué es concurrent-ruby?
- Una gema de Ruby con primitivas de concurrencia como futures, promises, pools de hilos, agents, atoms, colecciones thread-safe y clases de sincronización. Concurrent Ruby es una gema que ofrece un amplio conjunto de abstracciones de concurrencia para aplicaciones Ruby. Incluye herramientas asíncronas como Promises (un framework unificado de futures y promises), ScheduledTask y TimerTask, además de pools de hilos y otros executors inspirados en Java.
- ¿concurrent-ruby es gratuito? ¿Qué licencia tiene?
- concurrent-ruby es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿concurrent-ruby sigue mantenido?
- Mantenimiento activo. El último commit de concurrent-ruby fue el 16 oct 2026.
- ¿Para qué puedo usar concurrent-ruby?
- Ejecutar tareas en segundo plano o tareas de E/S en paralelo en un servicio Ruby sin añadir dependencias externas. Coordinar varios hilos con latches, barreras o semáforos. Programar tareas periódicas o diferidas dentro de un proceso Ruby. Compartir estado mutable de forma segura entre hilos mediante atoms o colecciones thread-safe.
- ¿Dónde consigo concurrent-ruby?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ruby-concurrency/concurrent-ruby
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un pool de threads Worker para Node.js que ejecuta tareas con uso intensivo de CPU fuera del event loop principal, con colas, cancelación y estadísticas de ejecución.
Un framework de actores para Rust que ejecuta actores con paso de mensajes tipados en el runtime de Tokio y ofrece supervisión.
Colección gratuita y de código abierto de ejercicios y ejemplos de Rust, organizados por capítulos, con código ejecutable y editable, y soluciones.
Biblioteca C++ de solo cabecera para crear programas paralelos mediante grafos de tareas, con soporte para multihilo en CPU y GPU CUDA.
Sincronización continua de archivos de código abierto que mantiene carpetas sincronizadas entre dos o más computadoras sin un servidor central.