February 2018
Intermediate to advanced
340 pages
9h 43m
English
package main import ( "fmt" "sync" ) var names = []string{"Alan", "Joe", "Jack", "Ben", "Ellen", "Lisa", "Carl", "Steve", "Anton", "Yo"} type SyncList struct { m sync.Mutex slice []interface{} } func NewSyncList(cap int) *SyncList { return &SyncList{ sync.Mutex{}, make([]interface{}, cap), } } func (l *SyncList) Load(i int) interface{} { l.m.Lock() defer l.m.Unlock() return l.slice[i] } func (l *SyncList) Append(val interface{}) { l.m.Lock() defer l.m.Unlock() l.slice = append(l.slice, val) } func (l *SyncList) Store(i int, val interface{}) { l.m.Lock() defer l.m.Unlock() l.slice[i] ...Read now
Unlock full access