Documentation ¶
Overview ¶
Package syncs -- syncパッケージ関連のサンプルが配置されているパッケージです。
Index ¶
- func AtomicAdd() error
- func AtomicTypes() error
- func CompareAndSwap() error
- func NewRegister() mapping.Register
- func NoSync() error
- func UseChannel() error
- func UseCondBroadcast() error
- func UseCondSignal() error
- func UseMap() error
- func UseMutex() error
- func UseOnce() error
- func UseOnceFunc() error
- func UseOnceValue() error
- func UseOnceValues() error
- func UsePool() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AtomicAdd ¶
func AtomicAdd() error
AtomicAdd -- atomic.AddXXX のサンプルです。
同期なしのサンプルは no_sync.go を参照。
REFERENCES ¶
func AtomicTypes ¶ added in v0.5.0
func AtomicTypes() error
AtomicTypes -- Go 1.19 から追加された sync/atomic パッケージ内の型についてのサンプルです。
Go 1.18 までの atomic.AddXXXX() を使ったサンプルは atomic_add.go を参照。
REFERENCES ¶
func CompareAndSwap ¶
func CompareAndSwap() error
CompareAndSwap -- sync/atomic.CompareAndSwap のサンプルです。
REFERENCES ¶
func NewRegister ¶
NewRegister -- このパッケージ用のサンプルを登録する mapping.Register を生成します。
func UseChannel ¶
func UseChannel() error
UseChannel -- 値の同期をチャネルを使って実現しているサンプルです。
- sync/atomic.AddXXX のサンプルは atomic_add.go を参照。
- 同期なしのサンプルは no_sync.go を参照。
基本的にチャネルは atomic.AddXXX() や sync.Mutex などと比べて遅いが プログラムとしては非同期処理の一番面倒な同期部分を丸ごとチャネルに 任せることができるので、やはり分かりやすい。
チャネルが遅いといっても、(50000*2)*5 の繰り返しで
- atomic.AddXXX が約 10 ms
- sync.Mutex が約 13 ms
- チャネル版が 約 100 ms
なので、極端にスピードが求められるシチュエーション以外は十分使える.
REFERENCES ¶
func UseCondBroadcast ¶
func UseCondBroadcast() error
UseCondBroadcast -- sync.Cond.Broadcast() のサンプルです。
- sync/atomic.AddXXX のサンプルは atomic_add.go を参照。
- 同期なしのサンプルは no_sync.go を参照。
- チャネルを使ったサンプルは use_channel.go を参照。
REFERENCES ¶
func UseCondSignal ¶
func UseCondSignal() error
UseCondSignal -- sync.Cond.Signal() のサンプルです。
- sync/atomic.AddXXX のサンプルは atomic_add.go を参照。
- 同期なしのサンプルは no_sync.go を参照。
- チャネルを使ったサンプルは use_channel.go を参照。
REFERENCES ¶
func UseMap ¶ added in v0.5.7
func UseMap() error
UseMap は、sync.Mapの使い方とそれをラップした型の紹介です。
REFERENCES ¶
func UseMutex ¶
func UseMutex() error
UseMutex -- sync.Mutex のサンプルです。
- sync/atomic.AddXXX のサンプルは atomic_add.go を参照。
- 同期なしのサンプルは no_sync.go を参照。
- チャネルを使ったサンプルは use_channel.go を参照。
REFERENCES ¶
func UseOnceFunc ¶ added in v0.5.7
func UseOnceFunc() error
UseOnceFunc は、Go 1.21 で追加された sync.OnceFunc() のサンプルです。
REFERENCES ¶
func UseOnceValue ¶ added in v0.5.7
func UseOnceValue() error
UseOnceValue は、Go 1.21 で追加された sync.OnceValue() のサンプルです。
REFERENCES ¶
func UseOnceValues ¶ added in v0.5.7
func UseOnceValues() error
UseOnceValues は、Go 1.21 で追加された sync.OnceValues() のサンプルです。
REFERENCES ¶
Types ¶
This section is empty.