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

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
loong avatar

loong/go-concurrency-exercises

0
View on GitHub↗

Go Concurrency Exercises

This project is an educational resource designed to help developers master concurrent execution and synchronization patterns in Go. It provides a structured collection of hands-on coding exercises and test-driven challenges that focus on the practical implementation of multi-threaded software engineering practices.

The repository emphasizes the core mechanisms of Go concurrency, including channel-based communication, mutex locking, and lifecycle coordination. It covers essential patterns such as managing background tasks, implementing graceful service shutdowns, and enforcing rate limits or execution time constraints. By working through these exercises, users learn to protect shared memory structures and prevent race conditions during concurrent operations.

The materials include automated testing utilities that leverage runtime instrumentation to validate the correctness of concurrent logic. These exercises guide learners through the nuances of coordinating multiple routines, ensuring that shared resources remain thread-safe while maintaining system throughput.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

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.
1,949 stars·564 forks·Go·25 views

Star history

Star history chart for loong/go-concurrency-exercisesStar history chart for loong/go-concurrency-exercises

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does loong/go-concurrency-exercises do?

This project is an educational resource designed to help developers master concurrent execution and synchronization patterns in Go. It provides a structured collection of hands-on coding exercises and test-driven challenges that focus on the practical implementation of multi-threaded software engineering practices.

What are the main features of loong/go-concurrency-exercises?

The main features of loong/go-concurrency-exercises are: 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.

Which projects share features with loong/go-concurrency-exercises?

Projects with overlapping indexed features include: 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…

Projects sharing features with Go Concurrency Exercises

These projects share indexed features with Go Concurrency Exercises. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • gevent/geventgevent avatar

    gevent/gevent

    6,440View on 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
    View on GitHub↗6,440
  • taskforcesh/bullmqtaskforcesh avatar

    taskforcesh/bullmq

    8,432View on 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
    View on GitHub↗8,432
  • go101/go101go101 avatar

    go101/go101

    6,042View on 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
    View on GitHub↗6,042
  • goestoeleven/golangtrainingGoesToEleven avatar

    GoesToEleven/GolangTraining

    10,479View on 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
    View on GitHub↗10,479
Compare all 30 related projects→

Curated searches featuring Go Concurrency Exercises

Hand-picked collections where Go Concurrency Exercises appears.
  • Golang Backend Interview Questions
  • Daily Coding Practice Challenges
  • Mastering Golang Books and Guides