package sync; type Mutex struct { locked bool } func (m *Mutex) Lock(){ if !m.locked { // Se não está travado ativa o bloqueio m.locked = true } else { // Se estiver com bloqueio ativo aguarda liberação for ; m.locked ; {} } } func (m *Mutex) Unlock(){ m.locked = false }