Sync包
sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。
注意:不应复制包含此包中定义的类型的值。
type Cond
:条件变量,实现了一个条件变量,一个线程集合地,供线程等待或者宣布某事件的发生。- func NewCond(l Locker) *Cond
- func (c *Cond) Broadcast()
- func (c *Cond) Signal()
- func (c *Cond) Wait()
type Locker
:锁接口,Locker接口代表一个可以加锁和解锁的对象。type Map
:go中并发安全版map- func (m *Map) Delete(key interface{})
- func (m *Map) Load(key interface{}) (value interface{}, ok bool)
- func (m *Map) LoadAndDelete(key interface{}) (value interface{}, loaded bool)
- func (m *Map) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool)
- func (m *Map) Range(f func(key, value interface{}) bool)
- func (m *Map) Store(key, value interface{})
type Mutex
:互斥锁- func (m *Mutex) Lock()
- func (m *Mutex) Unlock()
type Once
:是只执行一次动作的对象。- func (o *Once) Do(f func())
type Pool
:池,- func (p *Pool) Get() interface{}
- func (p *Pool) Put(x interface{})
type RWMutex
:读写互斥锁- func (rw *RWMutex) Lock()
- func (rw *RWMutex) RLock()
- func (rw *RWMutex) RLocker() Locker
- func (rw *RWMutex) RUnlock()
- func (rw *RWMutex) Unlock()
type WaitGroup
:等待组,用于等待一组线程的结束。- func (wg *WaitGroup) Add(delta int)
- func (wg *WaitGroup) Done()
- func (wg *WaitGroup) Wait()
1、sync.WaitGroup
sync.WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量。每个被等待的线程在结束时应调用Done方法。同时,主线程里可以调用Wait方法阻塞至所有线程结束。
2、sync.Once 只执行一次
3、sync.Map 并发安全的map
4、sync.Pool 池
5、sync.Cond 条件变量
作者:joker.liu 创建时间:2023-04-19 17:35
最后编辑:joker.liu 更新时间:2023-04-21 14:33
最后编辑:joker.liu 更新时间:2023-04-21 14:33