Goroutine pool -- ants
·439 words·3 mins
Table of Contents
📖 Introduction #
GitHub #
Library ants
implements a goroutine pool with fixed capacity, managing and recycling a massive number of goroutines, allowing developers to limit the number of goroutines in your concurrent programs.
🚀 Features: #
- Managing and recycling a massive number of goroutines automatically
- Purging overdue goroutines periodically
- Abundant APIs: submitting tasks, getting the number of running goroutines, tuning the capacity of the pool dynamically, releasing the pool, rebooting the pool, etc.
- Handle panic gracefully to prevent programs from crash
- Efficient in memory usage and it may even achieve higher performance than unlimited goroutines in Golang
- Nonblocking mechanism
- Preallocated memory (ring buffer, optional)
💡 How ants
works #
Flow Diagram #
Activity Diagrams #
🖥 Use cases #
business corporations #
Trusted by the following corporations/organizations.
open-source software #
The open-source projects below do concurrent programming with the help of ants
.
- gnet: A high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.
- milvus: An open-source vector database for scalable similarity search and AI applications.
- nps: A lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
- siyuan: SiYuan is a local-first personal knowledge management system that supports complete offline use, as well as end-to-end encrypted synchronization.
- osmedeus: A Workflow Engine for Offensive Security.
- jitsu: An open-source Segment alternative. Fully-scriptable data ingestion engine for modern data teams. Set-up a real-time data pipeline in minutes, not days.
- triangula: Generate high-quality triangulated and polygonal art from images.
- teler: Real-time HTTP Intrusion Detection.
- bsc: A Binance Smart Chain client based on the go-ethereum fork.
- jaeles: The Swiss Army knife for automated Web Application Testing.
- devlake: The open-source dev data platform & dashboard for your DevOps tools.
- matrixone: MatrixOne is a future-oriented hyper-converged cloud and edge native DBMS that supports transactional, analytical, and streaming workloads with a simplified and distributed database engine, across multiple data centers, clouds, edges and other heterogeneous infrastructures.
- bk-bcs: BlueKing Container Service (BCS, same below) is a container management and orchestration platform for the micro-services under the BlueKing ecosystem.
- trueblocks-core: TrueBlocks improves access to blockchain data for any EVM-compatible chain (particularly Ethereum mainnet) while remaining entirely local.
- openGemini: openGemini is an open-source,cloud-native time-series database(TSDB) that can be widely used in IoT, Internet of Vehicles(IoV), O&M monitoring, and industrial Internet scenarios.
- AdGuardDNS: AdGuard DNS is an alternative solution for tracker blocking, privacy protection, and parental control.
- WatchAD2.0: WatchAD2.0 是 360 信息安全中心开发的一款针对域安全的日志分析与监控系统,它可以收集所有域控上的事件日志、网络流量,通过特征匹配、协议分析、历史行为、敏感操作和蜜罐账户等方式来检测各种已知与未知威胁,功能覆盖了大部分目前的常见内网域渗透手法。
- vanus: Vanus is a Serverless, event streaming system with processing capabilities. It easily connects SaaS, Cloud Services, and Databases to help users build next-gen Event-driven Applications.
- trpc-go: A pluggable, high-performance RPC framework written in Golang.
- motan-go: a remote procedure call (RPC) framework for the rapid development of high-performance distributed services.