barrier

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Example

func Example()

Example 展示了 EasyBarrier 的使用示例。 创建一个 EasyBarrier 并启动多个 goroutine,等待它们完成后继续执行。

Types

type EasyBarrier

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

EasyBarrier 是一个简单的同步机制,允许多个 goroutine 协调并等待彼此完成。

func NewEasyBarrier

func NewEasyBarrier(num_workers int) *EasyBarrier

NewEasyBarrier 创建一个新的 EasyBarrier。 参数 num_workers 指定需要同步的 worker 数量。

func (*EasyBarrier) Done

func (barrier *EasyBarrier) Done()

Done 表示一个 worker 已经完成。 调用此方法会向 ready 通道发送一个信号。

func (*EasyBarrier) Sync

func (barrier *EasyBarrier) Sync()

Sync 等待所有 worker 完成。 调用此方法会阻塞,直到所有 worker 都调用了 Done。

type LightBarrier

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

LightBarrier 使用 sync.Cond 和计数器实现的同步机制。

func NewLightBarrier

func NewLightBarrier() *LightBarrier

NewLightBarrier 创建一个新的 BarrierWithCond。

func (*LightBarrier) Add

func (b *LightBarrier) Add()

Add 增加一个 worker。

func (*LightBarrier) Done

func (b *LightBarrier) Done()

Done 表示一个 worker 已经完成。

func (*LightBarrier) Sync

func (b *LightBarrier) Sync()

Sync 等待所有 worker 完成。

Jump to

Keyboard shortcuts

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