Popularity
1.3
Declining
Activity
0.3
-
9
2
1
Programming language: Go
License: BSD 2-clause "Simplified" License
Tags:
Goroutines
Latest version: v1.0.1
conexec alternatives and similar packages
Based on the "Goroutines" category.
Alternatively, view conexec alternatives based on common mentions on social networks and blogs.
-
Goflow
Simply way to control goroutines execution order based on dependencies -
async
A safe way to execute functions asynchronously, recovering them in case of panic. -
artifex
Simple in-memory job queue for Golang using worker-based dispatching. -
go-workers
Easily and safely run workers for large data processing pipelines. -
go-do-work
Dynamically resizable pools of goroutines which can queue an infinite number of jobs. -
semaphore
Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. -
gpool
manages a resizeable pool of context-aware goroutines to bound concurrency. -
neilotoole/errgroup
Drop-in alternative to sync/errgroup, limited to a pool of N worker goroutines. -
gollback
asynchronous simple function utilities, for managing execution of closures and callbacks. -
Hunch
Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive. -
routine
go routine control with context, support: Main, Go, Pool and some useful Executors. -
goccm
Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently. -
go-waitgroup
Like sync.WaitGroup with error handling and concurrency control. -
channelify
Transform your function to return channels for easy and powerful parallel processing. -
go-tools/multithreading
Manage a pool of goroutines using this lightweight library with a simple API. -
hands
A process controller used to control the execution and return strategies of multiple goroutines. -
queue
Gives you a sync.WaitGroup like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. -
concurrency-limiter
Concurrency limiter with support for timeouts , dynamic priority and context cancellation of goroutines. -
oversight
Oversight is a complete implementation of the Erlang supervision trees.
Scout APM - Leading-edge performance monitoring starting at $39/month
Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
Sponsored
scoutapm.com
Do you think we are missing an alternative of conexec or a related project?
Popular Comparisons
README
Introduction
conexec is a concurrent toolkit to help execute functions concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking.
How to use
Generally it can be set as a singleton to save memory. There are some example to use it.
Normal Actuator
Actuator is a base struct to execute functions concurrently.
opt := &Options{TimeOut:DurationPtr(time.Millisecond*50)}
c := NewActuator(opt)
err := c.Exec(
func() error {
fmt.Println(1)
time.Sleep(time.Second * 2)
return nil
},
func() error {
fmt.Println(2)
return nil
},
func() error {
time.Sleep(time.Second * 1)
fmt.Println(3)
return nil
},
)
if err != nil {
// ...do sth
}
Pooled Actuator
Pooled actuator uses the goroutine pool to execute functions. In some times it is a more efficient way.
opt := &Options{TimeOut:DurationPtr(time.Millisecond*50)}
c := NewPooledActuator(5, opt)
err := c.Exec(...)
if err != nil {
// ...do sth
}
Use custom goroutine pool
c := NewPooledActuator(5).WithPool(pool)
Simply exec using goroutine
done := Exec(...)
if !done {
// ... do sth
}