awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sourcegraph avatar

sourcegraph/conc

0
View on GitHub↗
10,307 星标·354 分支·Go·mit·6 次浏览about.sourcegraph.com/blog/building-conc-better-structured-concurrency-for-go↗

Conc

conc is a Go concurrency library and structured concurrency framework providing primitives for managing parallel tasks, mapping slices, and collecting results. It implements a system for spawning scoped tasks to ensure all child processes complete before their parent exits.

The library includes a goroutine pool manager to limit active concurrent processes and a panic-safe task runner that catches panics in goroutines and propagates stack traces to the parent. It also provides a concurrent map-reduce tool for transforming data slices and processing streams in parallel while maintaining the original order of results.

The project covers broad concurrency capabilities, including parallel data processing, resource-limited task execution, and structured error handling for capturing and propagating failures from parallel processes.

Features

  • Concurrency Libraries - Implements a comprehensive set of Go primitives for managing parallel tasks and collecting results.
  • Scoped Task Synchronization - Implements a structured concurrency framework ensuring all child work completes before the parent exits to prevent resource leaks.
  • Parallel Mappers - Transforms each element of a list using a function executed across multiple parallel processes.
  • Parallel Data Iterators - Splits data collections into individual units of work for concurrent processing across multiple Go routines.
  • Parallel Data Transformation - Transforms or iterates over large slices of data using multiple processes to improve performance.
  • Parallel Map-Reduce Tools - Provides a concurrent map-reduce tool for transforming data slices and processing streams in parallel.
  • Go Concurrency Utilities - Provides a specialized set of primitives for managing Go routines with scoped ownership and resource safety.
  • Structured Concurrency Managers - Provides a structured concurrency framework for spawning scoped tasks that ensures all child processes complete before the parent exits.
  • Goroutine Pools - Provides a goroutine pool manager to limit active concurrent processes and prevent system resource exhaustion.
  • Concurrent Task Runners - Runs multiple functions in parallel and gathers their results or errors into a single collection.
  • Concurrent Task Limiters - Controls resource consumption by executing concurrent tasks using a fixed maximum number of processes.
  • Panic Propagation - Captures failures in scoped processes and sends them to the parent to preserve debugging stack traces.
  • Parallel Task Spawning - Runs a collection of functions concurrently and aggregates results into a single data structure.
  • Panic Recovery - Captures runtime panics in child goroutines and re-throws them in the parent to preserve original stack traces.
  • Stream Processing - Performs asynchronous operations on data streams in parallel while maintaining the original sequence of results.
  • Concurrent Data Collection - Gathers return values and errors from multiple parallel tasks into a single unified collection.
  • Thread-Safe Communication Channels - Implements thread-safe communication channels to aggregate results and errors from parallel processes into a shared slice.
  • Synchronization Primitives - Utilizes synchronization primitives to block parent processes until all spawned child tasks have completed.
  • Error Handling - Captures panics and errors from parallel processes and propagates them to a parent for debugging.
  • Result Sequencers - Ensures that parallel outputs are returned in their original input sequence by tracking indices.
  • Concurrent - Includes a panic-safe task runner that catches goroutine panics and propagates stack traces to the parent.
  • Task Scheduling and Queues - Structured concurrency control.
  • Concurrency Management - Provides structured concurrency tools for safer task execution.
  • Concurrency Tools - Listed in the “Concurrency Tools” section of the Awesome Go awesome list.

Star 历史

sourcegraph/conc 的 Star 历史图表sourcegraph/conc 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Conc 的开源替代方案

相似的开源项目,按与 Conc 的功能重合度排序。
  • panjf2000/antspanjf2000 的头像

    panjf2000/ants

    14,436在 GitHub 上查看↗

    Ants is a goroutine pool library for Go that functions as a concurrent task orchestrator and resource consumption limiter. Its primary purpose is to manage and reuse a pool of goroutines to limit concurrency and reduce the memory allocation overhead associated with frequent thread creation. The system provides a runtime worker manager capable of adjusting pool capacity dynamically to respond to fluctuating workloads. To maintain stability, it includes panic recovery mechanisms that intercept runtime failures within worker threads to prevent a single failing task from crashing the entire appli

    Goantsgogoroutine
    在 GitHub 上查看↗14,436
  • rayon-rs/rayonrayon-rs 的头像

    rayon-rs/rayon

    13,071在 GitHub 上查看↗

    Rayon is a data parallelism library for Rust that provides a framework for converting sequential computations into parallel operations. It enables the transformation of standard data structures and loops into parallel iterators, allowing workloads to be distributed across multiple processor cores. By utilizing a work-stealing scheduler, the library dynamically balances tasks to maximize throughput and minimize execution time. The library distinguishes itself through its focus on safe, scoped task synchronization, which ensures that all spawned operations complete before a scope exits to preve

    Rust
    在 GitHub 上查看↗13,071
  • jeffail/tunnyJeffail 的头像

    Jeffail/tunny

    4,033在 GitHub 上查看↗

    Tunny is a worker pool library and concurrency manager for Go. It functions as a concurrent task scheduler that limits the number of parallel workers processing jobs to prevent system resource exhaustion. The project enables the maintenance of persistent state within individual worker routines to avoid repeated initialization costs. It also supports dynamic worker scaling, allowing the number of active background workers to be adjusted in real time without interrupting tasks in progress. The library provides mechanisms for task timeout enforcement and worker lifecycle management, including t

    Gogogolanggoroutine-pool
    在 GitHub 上查看↗4,033
  • python-trio/triopython-trio 的头像

    python-trio/trio

    7,280在 GitHub 上查看↗

    Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing non-blocking network and disk operations through a centralized event loop and task scheduler. The library is built on a structured concurrency model, which ensures that asynchronous tasks are bound to a specific lifetime and cannot outlive the scope that started them. It utilizes a nursery-based task manager to track task lifecycles in a parent-child tree, preventing orphaned concurrent operations by requiring child tasks to be joined before their parent scope exits. The framework cover

    Pythonasyncasync-awaitio
    在 GitHub 上查看↗7,280
查看 Conc 的所有 30 个替代方案→

常见问题解答

sourcegraph/conc 是做什么的?

conc is a Go concurrency library and structured concurrency framework providing primitives for managing parallel tasks, mapping slices, and collecting results. It implements a system for spawning scoped tasks to ensure all child processes complete before their parent exits.

sourcegraph/conc 的主要功能有哪些?

sourcegraph/conc 的主要功能包括:Concurrency Libraries, Scoped Task Synchronization, Parallel Mappers, Parallel Data Iterators, Parallel Data Transformation, Parallel Map-Reduce Tools, Go Concurrency Utilities, Structured Concurrency Managers。

sourcegraph/conc 有哪些开源替代品?

sourcegraph/conc 的开源替代品包括: panjf2000/ants — Ants is a goroutine pool library for Go that functions as a concurrent task orchestrator and resource consumption… rayon-rs/rayon — Rayon is a data parallelism library for Rust that provides a framework for converting sequential computations into… jeffail/tunny — Tunny is a worker pool library and concurrency manager for Go. It functions as a concurrent task scheduler that limits… python-trio/trio — Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing… ruby-concurrency/concurrent-ruby — Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data… geektutu/high-performance-go — This project is a comprehensive performance programming guide and reference for the Go language, focusing on runtime…