pool

package
v1.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2022 License: MIT Imports: 9 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// GetByte retrieves a byte slice but uses the global pool
	GetByte = builtinPool.Get
	// PutByte returns a byte slice but uses the global pool
	PutByte = builtinPool.Put
)

Functions

This section is empty.

Types

type BytePool

type BytePool struct {
	// contains filtered or unexported fields
}

Pool consists of 32 sync.Pool, representing byte slices of length from 0 to 32 in powers of 2.

func (*BytePool) Get

func (p *BytePool) Get(size int) (buf []byte)

Get retrieves a byte slice of the length requested by the caller from pool or allocates a new one.

func (*BytePool) Put

func (p *BytePool) Put(buf []byte)

Put returns the byte slice to the pool.

type GoroutinePool added in v1.1.4

type GoroutinePool struct {
	// contains filtered or unexported fields
}

func NewGoroutinePool added in v1.1.4

func NewGoroutinePool(opts ...Option) *GoroutinePool

func (*GoroutinePool) Schedule added in v1.1.4

func (p *GoroutinePool) Schedule(task func())

Schedule 执行任务

func (*GoroutinePool) Stop added in v1.1.5

func (p *GoroutinePool) Stop()

Stop 停止协程池

type Option added in v1.1.5

type Option func(options *Options)

type Options added in v1.1.5

type Options struct {
	Max     int32         // maximum number of workers
	Idle    int           // idle number of workers
	Timeout time.Duration // quit time for worker
}

type Provider added in v1.1.7

type Provider[Object any] interface {
	Acquire() Object
	Release(obj Object)
}

Provider represents a object provider

func NewSyncPoolProvider added in v1.1.7

func NewSyncPoolProvider[Object any](constructor func() interface{}) Provider[Object]

type SyncPoolProvider added in v1.1.7

type SyncPoolProvider[Object any] struct {
	// contains filtered or unexported fields
}

func (*SyncPoolProvider[Object]) Acquire added in v1.1.7

func (provider *SyncPoolProvider[Object]) Acquire() Object

func (*SyncPoolProvider[Object]) Release added in v1.1.7

func (provider *SyncPoolProvider[Object]) Release(obj Object)

type Worker added in v1.1.4

type Worker struct {
	// contains filtered or unexported fields
}

func NewWorker added in v1.1.5

func NewWorker(pool *GoroutinePool, size int) *Worker

type WorkerPool added in v1.1.4

type WorkerPool interface {
	Schedule(task func())
	Stop()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL