Categorygithub.com/iTrellis/concurrency
modulepackage
0.21.1
Repository: https://github.com/itrellis/concurrency.git
Documentation: pkg.go.dev

# README

concurrency

go concurrency library

  • GoDoc

Installation

go get -u github.com/iTrellis/concurrency

Usage

concurrency repo

// ConcurrencyRepo functions for go routings to run tasks
type ConcurrencyRepo interface {
	// Invoke tasks: task must be functions
	Invoke(tasks []interface{}) ([]Runner, error)
	InvokeDuration(tasks []interface{}, timeout time.Duration) ([]Runner, error)
}

new and input a namespace's transaction

	c := concurrency.New(100)

	f := func(i int) (n int) {
		fmt.Println(i, time.Now())
		return i
	}

	var tasks []interface{}
	for i := 0; i < 50; i++ {
		tasks = append(tasks, f)
	}

	runners, err := c.Invoke(tasks)

	for i := 0; i < 50; i++ {
		fmt.Println(runners[i].Get.MapV(func(n int){fmt.Println("%3.d", n)}))
	}

# Functions

New return a concurrency pool with number.

# Variables

concurrency errors.
concurrency errors.
concurrency errors.

# Structs

Result run task return values.
RunnerStack runner stack.
Task task.

# Interfaces

Repo functions for go routings to run tasks.
Runner functions for a runner.