Documentation ¶
Overview ¶
Package syncs -- syncパッケージ関連のサンプルが配置されているパッケージです。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AtomicAdd ¶
func AtomicAdd() error
AtomicAdd -- atomic.AddXXX のサンプルです。
同期なしのサンプルは no_sync.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 ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.