Source File
mutex.go
Belonging Package
sync
// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// Package sync provides basic synchronization primitives such as mutual// exclusion locks. Other than the [Once] and [WaitGroup] types, most are intended// for use by low-level library routines. Higher-level synchronization is// better done via channels and communication.//// Values containing the types defined in this package should not be copied.package syncimport (isync)// A Mutex is a mutual exclusion lock.// The zero value for a Mutex is an unlocked mutex.//// A Mutex must not be copied after first use.//// In the terminology of [the Go memory model],// the n'th call to [Mutex.Unlock] “synchronizes before” the m'th call to [Mutex.Lock]// for any n < m.// A successful call to [Mutex.TryLock] is equivalent to a call to Lock.// A failed call to TryLock does not establish any “synchronizes before”// relation at all.//// [the Go memory model]: https://go.dev/ref/memtype Mutex struct {_ noCopymu isync.Mutex}// A Locker represents an object that can be locked and unlocked.type Locker interface {Lock()Unlock()}// Lock locks m.// If the lock is already in use, the calling goroutine// blocks until the mutex is available.func ( *Mutex) () {.mu.Lock()}// TryLock tries to lock m and reports whether it succeeded.//// Note that while correct uses of TryLock do exist, they are rare,// and use of TryLock is often a sign of a deeper problem// in a particular use of mutexes.func ( *Mutex) () bool {return .mu.TryLock()}// Unlock unlocks m.// It is a run-time error if m is not locked on entry to Unlock.//// A locked [Mutex] is not associated with a particular goroutine.// It is allowed for one goroutine to lock a Mutex and then// arrange for another goroutine to unlock it.func ( *Mutex) () {.mu.Unlock()}
![]() |
The pages are generated with Golds v0.7.9-preview. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |