syncs

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2022 License: MIT Imports: 5 Imported by: 0

README

サンプルリスト

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

file example name note

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

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 UseMutex

func UseMutex() error

UseMutex -- sync.Mutex のサンプルです。

  • sync/atomic.AddXXX のサンプルは atomic_add.go を参照。
  • 同期なしのサンプルは no_sync.go を参照。
  • チャネルを使ったサンプルは use_channel.go を参照。

REFERENCES

Types

This section is empty.

Jump to

Keyboard shortcuts

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