awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoServidor MCPAcerca deCómo clasificamosPrensa
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
loong avatar

loong/go-concurrency-exercises

0
View on GitHub↗
1,949 estrellas·564 forks·Go·16 vistas

Go Concurrency Exercises

Este proyecto es un recurso educativo diseñado para ayudar a los desarrolladores a dominar la ejecución concurrente y los patrones de sincronización en Go. Proporciona una colección estructurada de ejercicios de codificación prácticos y desafíos basados en pruebas que se enfocan en la implementación práctica de prácticas de ingeniería de software multihilo.

El repositorio enfatiza los mecanismos centrales de la concurrencia en Go, incluyendo comunicación basada en canales, bloqueo de mutex y coordinación del ciclo de vida. Cubre patrones esenciales como la gestión de tareas en segundo plano, la implementación de cierres de servicio elegantes y la imposición de límites de tasa o restricciones de tiempo de ejecución. Al trabajar a través de estos ejercicios, los usuarios aprenden a proteger estructuras de memoria compartida y prevenir condiciones de carrera durante operaciones concurrentes.

Los materiales incluyen utilidades de prueba automatizadas que aprovechan la instrumentación en tiempo de ejecución para validar la corrección de la lógica concurrente. Estos ejercicios guían a los estudiantes a través de los matices de coordinar múltiples rutinas, asegurando que los recursos compartidos permanezcan thread-safe mientras se mantiene el throughput del sistema.

Features

  • Go Concurrency Training - Provides a structured collection of exercises to master Go concurrency primitives and synchronization patterns.
  • Go Programming Tutorials - Teaches developers how to manage goroutines, channels, and shared memory safely through structured challenges.
  • Mutexes and Locks - Uses mutual exclusion locks to serialize access to shared data structures and prevent race conditions.
  • In-Memory Communication Channels - Implements channel-based communication to pass data between independent routines, ensuring memory safety.
  • Software Engineering Practices - Provides test-driven exercises focused on solving multi-threaded programming problems and preventing race conditions.
  • Concurrent Data Processors - Coordinates multiple routines for simultaneous data production and consumption to increase throughput.
  • Blocking Completion Waits - Coordinates the completion of multiple concurrent tasks by blocking until all spawned routines finish.
  • Execution Time Limits - Enforces resource usage constraints by terminating long-running processes after specified durations.
  • Graceful Shutdowns - Implements controlled termination sequences for background tasks to ensure system stability during shutdowns.
  • Worker Throttling - Limits the number of active workers using buffered channels as semaphores to control concurrent task execution.
  • Process Termination Signals - Intercepts interrupt signals to trigger controlled shutdown sequences with fallback termination.
  • Background Task Management - Provides patterns for executing periodic background cleanup routines while maintaining thread safety.
  • Concurrent Task Limiters - Limits the execution rate of concurrent tasks to prevent overloading external services.
  • Rate Limiting - Controls execution frequency of concurrent tasks to maintain efficient processing while preventing overload.
  • Context Managers - Propagates cancellation signals and deadlines across concurrent routines to manage lifecycle and prevent resource leaks.
  • Thread-Safe Collection Operations - Protects shared memory and map access from data races using synchronization primitives.
  • Concurrent Data Structures - Provides thread-safe wrappers for shared memory structures to protect against data races.
  • Concurrency Race Condition Testing - Uses runtime instrumentation during test execution to identify unsynchronized memory access and race conditions.
  • Concurrent Software Testing - Includes automated test suites that simulate multi-threaded environments to validate concurrent logic.

Historial de estrellas

Gráfico del historial de estrellas de loong/go-concurrency-exercisesGráfico del historial de estrellas de loong/go-concurrency-exercises

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Colecciones destacadas con Go Concurrency Exercises

Colecciones seleccionadas manualmente donde aparece Go Concurrency Exercises.
  • Preguntas de entrevista para desarrolladores Backend en Golang
  • Retos diarios de programación
  • Libros y guías para dominar Golang

Preguntas frecuentes

¿Qué hace loong/go-concurrency-exercises?

Este proyecto es un recurso educativo diseñado para ayudar a los desarrolladores a dominar la ejecución concurrente y los patrones de sincronización en Go. Proporciona una colección estructurada de ejercicios de codificación prácticos y desafíos basados en pruebas que se enfocan en la implementación práctica de prácticas de ingeniería de software multihilo.

¿Cuáles son las características principales de loong/go-concurrency-exercises?

Las características principales de loong/go-concurrency-exercises son: Go Concurrency Training, Go Programming Tutorials, Mutexes and Locks, In-Memory Communication Channels, Software Engineering Practices, Concurrent Data Processors, Blocking Completion Waits, Execution Time Limits.

¿Qué alternativas de código abierto existen para loong/go-concurrency-exercises?

Las alternativas de código abierto para loong/go-concurrency-exercises incluyen: gevent/gevent — Gevent is a Python coroutine concurrency library and asynchronous task manager designed for high-concurrency I/O… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… go101/go101 — Go 101 is an unofficial, comprehensive knowledge base for the Go programming language, designed as a structured… goestoeleven/golangtraining — GolangTraining is a structured language training course and a series of programming tutorials designed to teach Go… deckarep/golang-set — This project is a set theory library for Go that provides a data structure for storing unique elements of any… angrave/systemprogramming — This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core…

Alternativas open-source a Go Concurrency Exercises

Proyectos open-source similares, clasificados según cuántas características comparten con Go Concurrency Exercises.
  • gevent/geventAvatar de gevent

    gevent/gevent

    6,440Ver en GitHub↗

    Gevent is a Python coroutine concurrency library and asynchronous task manager designed for high-concurrency I/O tasks. It provides a cooperative networking framework for building asynchronous TCP, UDP, and HTTP servers, as well as a WSGI web server implementation for hosting web applications. The project is distinguished by its standard library monkey-patching tool, which replaces blocking synchronous functions with cooperative versions to enable asynchronous behavior in third-party code. This allows for a cooperative multitasking workflow where the system yields execution during I/O waits t

    Pythonasynciocoroutinesgreenlet
    Ver en GitHub↗6,440
  • taskforcesh/bullmqAvatar de taskforcesh

    taskforcesh/bullmq

    8,432Ver en GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    Ver en GitHub↗8,432
  • go101/go101Avatar de go101

    go101/go101

    6,042Ver en GitHub↗

    Go 101 is an unofficial, comprehensive knowledge base for the Go programming language, designed as a structured self-study resource covering syntax, semantics, best practices, and common pitfalls. It serves as a complete offline documentation system, installable as a local website that can be browsed without an internet connection, and includes a built-in HTTP server for serving the content locally. The project distinguishes itself through its depth and breadth of coverage, offering a structured book series that teaches Go fundamentals, a deep dive into the type system, and detailed guides on

    HTMLbookdetailsfaq
    Ver en GitHub↗6,042
  • goestoeleven/golangtrainingAvatar de GoesToEleven

    GoesToEleven/GolangTraining

    10,479Ver en GitHub↗

    GolangTraining is a structured language training course and a series of programming tutorials designed to teach Go syntax, core concepts, and concurrency patterns. It serves as an educational resource for mastering the Go programming language through a curriculum of instructional guides. The material emphasizes a guided path for learning Go language fundamentals and concurrency, specifically focusing on the implementation of goroutines and channels to manage parallel execution. The curriculum utilizes an exercise-driven learning model that combines theoretical explanations with hands-on impl

    Go
    Ver en GitHub↗10,479
  • Ver las 30 alternativas a Go Concurrency Exercises→