Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 1.09 KB

README.md

File metadata and controls

40 lines (31 loc) · 1.09 KB

common-tools

名称 路径 描述 修订 修订时间
自旋锁 github.com/caiflower/common-tools/syncx 自旋锁,拷贝自ants项目 2024-2-5
依赖注入 github.com/caiflower/common-tools/bean 自动注入ptr 2024-9-21

自旋锁

package main

import (
    "fmt"
    "github.com/caiflower/common-tools/pkg/syncx"
    "sync"
)

func main() {
    wait := sync.WaitGroup{}
    lock := syncx.NewSpinLock()
    var num int

    fn := func() {
        lock.Lock()
        num++
        lock.Unlock()
        wait.Done()
    }

    for i := 0; i < 10000; i++ {
        wait.Add(1)
        go fn()
    }

    wait.Wait()
    fmt.Printf("-----num=%v-----", num)
}