名前空間
変種
操作

std::atomic_is_lock_free, ATOMIC_xxx_LOCK_FREE

提供: cppreference.com
< cpp‎ | atomic
 
 
アトミック操作ライブラリ
タイプ
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic(C++11)
atomic_is_lock_free(C++11)
機能します
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_store
atomic_store_explicit
(C++11)
(C++11)
atomic_load
atomic_load_explicit
(C++11)
(C++11)
atomic_exchange
atomic_exchange_explicit
(C++11)
(C++11)
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
(C++11)
(C++11)
(C++11)
(C++11)
atomic_fetch_add
atomic_fetch_add_explicit
(C++11)
(C++11)
atomic_fetch_sub
atomic_fetch_sub_explicit
(C++11)
(C++11)
atomic_fetch_and
atomic_fetch_and_explicit
(C++11)
(C++11)
atomic_fetch_or
atomic_fetch_or_explicit
(C++11)
(C++11)
atomic_fetch_xor
atomic_fetch_xor_explicit
(C++11)
(C++11)
アトミックのフラグ
Original:
Atomic flags
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_flag(C++11)
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
(C++11)
(C++11)
atomic_flag_clear
atomic_flag_clear_explicit
(C++11)
(C++11)
初期化
Original:
Initialization
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_init(C++11)
ATOMIC_VAR_INIT(C++11)
ATOMIC_FLAG_INIT(C++11)
メモリは発注
Original:
Memory ordering
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
memory_order(C++11)
kill_dependency(C++11)
atomic_thread_fence(C++11)
atomic_signal_fence(C++11)
 
Defined in header <atomic>
template< class Atomic >
bool atomic_is_lock_free(const volatile Atomic* obj)
(1) (C++11およびそれ以降)
template< class Atomic >
bool atomic_is_lock_free(const Atomic* obj)
(2) (C++11およびそれ以降)
#define ATOMIC_CHAR_LOCK_FREE     /* unspecified */

#define ATOMIC_CHAR16_T_LOCK_FREE /* unspecified */
#define ATOMIC_CHAR32_T_LOCK_FREE /* unspecified */
#define ATOMIC_WCHAR_T_LOCK_FREE  /* unspecified */
#define ATOMIC_SHORT_LOCK_FREE    /* unspecified */
#define ATOMIC_INT_LOCK_FREE      /* unspecified */
#define ATOMIC_LONG_LOCK_FREE     /* unspecified */
#define ATOMIC_LLONG_LOCK_FREE    /* unspecified */

#define ATOMIC_POINTER_LOCK_FREE  /* unspecified */
(3) (C++11およびそれ以降)

1-2) obj->is_lock_free() を呼び出したかのように、obj が指すアトミックオブジェクトがロックフリーに実装されているか調べます。

3) 決してロックフリーにならない組み込みアトミック型に対しては値 0 を持つ整数定数式に展開されます。時々ロックフリーになることがある組み込みアトミック型に対しては値 1 を持つ整数定数式に展開されます。常にロックフリーである組み込みアトミック型に対しては値 2 を持つ定数定数式に展開されます。

目次

[編集] ノート

std::atomic_flag を除く全てのアトミック型は、ロックフリーなアトミック CPU 命令ではなく、mutex や他のロック操作を使って実装されることがあります。 アトミック型は「時々」ロックフリーになることが許されています。 例えば、もし与えられたアーキテクチャにおいてアラインされたメモリアクセスだけがアトミックとなる場合、アラインされていない同じ型のオブジェクトはロックを使わなければなりません。 ある型が時々ロックフリーである場合、ある特定のインスタンスがロックフリーかどうかを判定するためには、関数 (1-2) かそれらと等価なメンバ関数を使う必要があります。

[編集] パラメータ

obj - アトミックオブジェクトへのポインタ

[編集] 戻り値

*objがロックフリーなアトミックオブジェクトであればtrue、そうでなければfalse

[編集] 例外

noexcept specification:  
noexcept
  (C++11およびそれ以降)

[編集]

[編集] 参考

原子オブジェクトがロックフリーであるかどうかをチェックします
Original:
checks if the atomic object is lock-free
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(パブリックメンバ関数of std::atomic) [edit]
std::shared_ptrに対するアトミック操作の特殊化
(関数テンプレート)
ロックフリーブール原子型
Original:
the lock-free boolean atomic type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(クラス) [edit]