Skip to content

reugn/async

Folders and files

NameName
Last commit message
Last commit date

Latest commit

53f371f · Sep 7, 2024

History

84 Commits
Sep 7, 2024
Feb 5, 2024
Nov 23, 2021
Aug 22, 2024
Aug 21, 2024
Nov 20, 2021
Nov 20, 2021
Sep 7, 2024
Dec 28, 2019
Aug 22, 2024
Sep 4, 2024
Sep 4, 2024
Aug 21, 2024
Aug 26, 2024
Aug 21, 2024
Oct 27, 2023
Oct 28, 2023
Feb 4, 2024
Sep 25, 2023
Feb 5, 2024
Feb 5, 2024
Feb 16, 2024
Aug 20, 2024
Aug 20, 2024
Mar 16, 2024
Mar 16, 2024
Aug 20, 2024
Oct 28, 2023
Oct 28, 2023
Aug 20, 2024
Aug 20, 2024
Oct 28, 2023
Sep 7, 2024
Nov 24, 2023
Feb 4, 2024

Repository files navigation


Async is a synchronization and asynchronous computation package for Go.

Overview

  • ConcurrentMap - Implements the generic async.Map interface in a thread-safe manner by delegating load/store operations to the underlying sync.Map.
  • ShardedMap - Implements the generic async.Map interface in a thread-safe manner, delegating load/store operations to one of the underlying async.SynchronizedMaps (shards), using a key hash to calculate the shard number.
  • Future - A placeholder object for a value that may not yet exist.
  • Promise - While futures are defined as a type of read-only placeholder object created for a result which doesn’t yet exist, a promise can be thought of as a writable, single-assignment container, which completes a future.
  • Executor - A worker pool for executing asynchronous tasks, where each submission returns a Future instance representing the result of the task.
  • Task - A data type for controlling possibly lazy and asynchronous computations.
  • Once - An object similar to sync.Once having the Do method taking f func() (T, error) and returning (T, error).
  • Value - An object similar to atomic.Value, but without the consistent type constraint.
  • WaitGroupContext - A WaitGroup with the context.Context support for graceful unblocking.
  • ReentrantLock - A mutex that allows goroutines to enter into the lock on a resource more than once.
  • PriorityLock - A non-reentrant mutex that allows for the specification of lock acquisition priority.

Examples

Can be found in the examples directory/tests.

License

Licensed under the MIT License.