this is a goroutine pool
Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
workerpool.go

README.md

This is a goroutine pool

Overview

Features

  1. We will only start a goroutine when needed. That means, we won't start all the goroutines when initializing.
  2. We will adjust the goroutine number dynamically.

How to use

Install

go get github.com/legendtkl/ppl

Example

package main

import (
    "fmt"
    "github.com/legendtkl/pool"
    "time"
)

func main() {
    wp, err := pool.NewLimit(100)
    if err != nil {
        fmt.Println("Create Worker Pool Failed")
    }

    //f()
    for i := 0; i < 100; i++ {
        j := i
        f := func() {
            fmt.Println(j)
        }
        wp.Queue(f)
    }

    time.Sleep(5 * time.Second)
}

Performance

Acknowledge