syncs

package
v0.5.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2024 License: MIT Imports: 7 Imported by: 0

README

サンプルリスト

このディレクトリには以下のサンプルがあります。

file example name note
atomic_add.go syncs_atomic_add atomic.AddXXX のサンプルです
atomic_compareandswap.go syncs_atomic_compareandswap sync/atomic.CompareAndSwap のサンプルです
atomic_types.go syncs_atomic_types Go 1.19 から追加された sync/atomic パッケージ内の型についてのサンプルです
use_map.go syncs_use_map sync.Mapの使い方とそれをラップした型の紹介です
no_sync.go syncs_no_sync 同期なしで非同期処理をしているサンプルです
use_channel.go syncs_use_channel 値の同期をチャネルを使って実現しているサンプルです
use_cond_broadcast.go syncs_use_cond_broadcast sync.Cond.Broadcast() のサンプルです
use_cond_siginal.go syncs_use_cond_signal sync.Cond.Signal() のサンプルです
use_mutex.go syncs_use_mutex sync.Mutex のサンプルです
use_once.go syncs_use_once sync.Onceのサンプルです
use_oncefunc.go syncs_use_oncefunc Go 1.21 で追加された sync.OnceFunc() のサンプルです
use_oncevalue.go syncs_use_oncevalue Go 1.21 で追加された sync.OnceValue() のサンプルです
use_oncevalues.go syncs_use_oncevalues Go 1.21 で追加された sync.OnceValues() のサンプルです
use_pool.go syncs_use_pool sync.Poolのサンプルです

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 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

func NewRegister() mapping.Register

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 UseOnce added in v0.5.7

func UseOnce() error

UseOnce は、sync.Onceのサンプルです.

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

func UsePool added in v0.5.9

func UsePool() error

UsePool は、sync.Poolのサンプルです。

REFERENCES

Types

This section is empty.

Directories

Path Synopsis
Package map は、カスタムマップを定義しています。
Package map は、カスタムマップを定義しています。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL