Repolode
ruby-concurrency

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