sync
sync.WaitGroup 计数信号量
sync.Mutex 锁 (互斥锁),性能不如读写锁
sync.RWMutex 锁(读写锁)
sync.Cond 条件锁 多个例程执行,某个执行检查是否满足条件,不满足等待 等待:wait方法
其他例程,当可能产生等待例程条件重新满足,通知等待例程。通知:singal/broadcase方法
sync.Map 线程安全的map,方法有限,可以用 map类型+Mutex/RWMutex来替代实现。
sync.Once 保证一个逻辑只执行一次
sync.Pool 线程池,连接池等等
对象池,从池中获取对象,当池中无可用对象,创建并返回,当使用完成会放入池中。
Once函数只执行一次
示例:
once:=&sync.Once{}
once.Do(task) //函数只运行一次
once.Do(taskA)
once.Do(task) //不运行
Pool
示例:
intPool :=&sync.Pool{
New: func() interface{}{
fmt.Println("new")
return 1
}
}
文档更新时间: 2021-08-22 14:29 作者:张尚