concurrent

package
v1.0.52 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrorGroupDiff added in v1.0.47

func ErrorGroupDiff(handlers []ttypes.ErrorGroupHandler, closeHandler ...ttypes.ErrHandler) error

func ErrorGroupLimit added in v1.0.47

func ErrorGroupLimit(n int, handlers []ttypes.ErrorGroupHandler, closeHandler ...ttypes.ErrHandler) error

func ErrorGroupSame added in v1.0.47

func ErrorGroupSame(number int, handler ttypes.ErrorGroupHandler, closeHandler ...ttypes.ErrHandler) error

func FanOut

func FanOut[T any](data ttypes.IFanOut[T], number int) []T

func RunSafe

func RunSafe(handler func(), errHandler ...ttypes.ErrHandler)

RunSafe 捕获panic的协程

func WaitGroupDiff added in v1.0.47

func WaitGroupDiff(handlers []ttypes.WaitGroupHandler)

func WaitGroupLimit added in v1.0.47

func WaitGroupLimit(n int, handlers []ttypes.WaitGroupHandler)

func WaitGroupSame added in v1.0.47

func WaitGroupSame(number int, handler ttypes.WaitGroupHandler)

Types

type Future added in v1.0.47

type Future[T any] struct {
	Chan chan *T
}

func Run added in v1.0.47

func Run[T any](fn func() *T) *Future[T]

func (*Future[T]) TryGet added in v1.0.47

func (f *Future[T]) TryGet() (*T, bool)

type Limit

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

Limit 限制并发器,限制最大同时运行的数量

func NewLimit

func NewLimit(max int) *Limit

func (*Limit) Get

func (r *Limit) Get()

func (*Limit) Put

func (r *Limit) Put()

type PriorityChan

type PriorityChan[T any] struct {
	// contains filtered or unexported fields
}

func NewPriorityChan

func NewPriorityChan[T any](hsize int, lsize int) *PriorityChan[T]

func (*PriorityChan[T]) Get

func (p *PriorityChan[T]) Get() T

Get 获取数据,阻塞等待

func (*PriorityChan[T]) GetWithTimeout

func (p *PriorityChan[T]) GetWithTimeout(timeout time.Duration) (T, error)

GetWithTimeout 获取数据,支持超时返回

func (*PriorityChan[T]) HandleSignal

func (p *PriorityChan[T]) HandleSignal(highHandler ttypes.PriorityHandler[T], lowHandler ttypes.PriorityHandler[T]) error

HandleSignal 通过传入处理函数,处理队列信号

func (*PriorityChan[T]) Put added in v0.0.3

func (p *PriorityChan[T]) Put(event T, t ttypes.PriorityType)

func (*PriorityChan[T]) PutWithTimeout added in v0.0.3

func (p *PriorityChan[T]) PutWithTimeout(event T, t ttypes.PriorityType, timeout time.Duration) error

func (*PriorityChan[T]) TryGet

func (p *PriorityChan[T]) TryGet() T

TryGet 尝试获取数据,如果没准备好直接返回

func (*PriorityChan[T]) TryPut added in v0.0.3

func (p *PriorityChan[T]) TryPut(event T, t ttypes.PriorityType) error

Jump to

Keyboard shortcuts

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