<atomic>
işlevleri
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_exchange
atomic_exchange_explicit
atomic_fetch_add
atomic_fetch_add_explicit
atomic_fetch_and
atomic_fetch_and_explicit
atomic_fetch_or
atomic_fetch_or_explicit
atomic_fetch_sub
atomic_fetch_sub_explicit
atomic_fetch_xor
atomic_fetch_xor_explicit
atomic_flag_clear
atomic_flag_clear_explicit
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
atomic_init
atomic_is_lock_free
atomic_load
atomic_load_explicit
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_thread_fence
kill_dependency
atomic_compare_exchange_strong
Atomik karşılaştırma ve değişim işlemi gerçekleştirir.
template <class Ty>
inline bool atomic_compare_exchange_strong(
volatile atomic<Ty>* Atom,
Ty* Exp,
Value) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Exp
türünde Ty
bir değerin işaretçisi.
Value
türünde Ty
bir değer.
Dönüş Değeri
true
değerler eşitse, aksi takdirde false
.
Açıklamalar
Bu yöntem örtük memory_order.memory_order_seq_cst
bağımsız değişkenler kullanarak atomik karşılaştırma ve değişim işlemi gerçekleştirir. Daha fazla bilgi için bkz. atomic_compare_exchange_strong_explicit
.
atomic_compare_exchange_strong_explicit
atomic compare and exchange
bir işlem gerçekleştirir.
template <class T>
inline bool atomic_compare_exchange_strong_explicit(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong_explicit(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Exp
türünde Ty
bir değerin işaretçisi.
Value
türünde Ty
bir değer.
Order1
İlk memory_order
bağımsız değişken.
Order2
İkinci memory_order
bağımsız değişken. değeri Order2
veya memory_order_acq_rel
olamazmemory_order_release
, değerinden Order1
daha güçlü olamaz.
Dönüş Değeri
true
değerler eşitse, aksi takdirde false
.
Açıklamalar
, atomic compare and exchange operation
ile işaret Atom
edilen nesnede depolanan değeri ile ile işaret edilen Exp
değerle karşılaştırır. Değerler eşitse, tarafından işaret edilen Atom
nesnede depolanan değer, bir okuma-değiştirme-yazma işlemi kullanılarak ve tarafından Order1
belirtilen bellek sırası kısıtlamaları uygulanarak ile Value
değiştirilir. Değerler eşit değilse, işlem tarafından işaret edilen değeri, tarafından işaret Atom
edilen Exp
nesnede depolanan değerle değiştirir ve tarafından Order2
belirtilen bellek sırası kısıtlamalarını uygular.
atomic_compare_exchange_weak
Zayıf bir atomik karşılaştırma ve değişim işlemi gerçekleştirir.
template <class Ty>
inline bool atomic_compare_exchange_strong(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Exp
türünde Ty
bir değerin işaretçisi.
Value
türünde Ty
bir değer.
Dönüş Değeri
true
değerler eşitse, aksi takdirde false
.
Açıklamalar
Bu yöntem örtük memory_order.memory_order_seq_cst
bağımsız değişkenler içeren zayıf bir atomik karşılaştırma ve değişim işlemi gerçekleştirir. Daha fazla bilgi için bkz. atomic_compare_exchange_weak_explicit
.
atomic_compare_exchange_weak_explicit
Zayıf bir atomik karşılaştırma ve değişim işlemi gerçekleştirir.
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Exp
türünde Ty
bir değerin işaretçisi.
Value
türünde Ty
bir değer.
Order1
İlk memory_order
bağımsız değişken.
Order2
İkinci memory_order
bağımsız değişken. değeri Order2
veya memory_order_acq_rel
olamaz memory_order_release
veya değerinden Order1
daha güçlü olamaz.
Dönüş Değeri
true
değerler eşitse, aksi takdirde false
.
Açıklamalar
Beklenen ve geçerli değerler eşit değilse yeni değeri depolamama garantisinin hem güçlü hem de zayıf özellikleri atomic compare and exchange operation
. Güçlü aroma, beklenen ve geçerli değerler eşitse yeni değerin depolanacağı garanti eder. Zayıf tat bazen döndürebilir false
ve geçerli ve beklenen değerler eşit olsa bile yeni değeri depolamayabilir. Başka bir deyişle işlev döndürür false
, ancak beklenen değerin daha sonra incelenmesi değişmediğini ve bu nedenle eşit olarak karşılaştırılması gerektiğini gösterebilir.
atomic_exchange
depolanan değerini Atom
değiştirmek için kullanırValue
.
template <class T>
inline Ty atomic_exchange(volatile atomic<Ty>* _Atom, Ty Value) noexcept;
template <class Ty>
inline T atomic_exchange(atomic<Ty>* Atom, Ty Value) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde Ty
bir değer.
Dönüş Değeri
Değişimden önceki depolanmış değeri Atom
.
Açıklamalar
atomic_exchange
işlevi ile içinde Value
memory_order.memory_order_seq_cst
depolanan Atom
değeri değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_exchange_explicit
saklı değerini Atom
ile Value
değiştirir.
template <class Ty>
inline Ty atomic_exchange_explicit(
volatile atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_exchange_explicit(
atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde Ty
bir değer.
Order
Bir memory_order
.
Dönüş Değeri
Değişimden önceki depolanmış değeri Atom
.
Açıklamalar
işlevi, atomic_exchange_explicit
ile içinde Value
depolanan Atom
değeri, tarafından Order
belirtilen bellek kısıtlamaları içinde değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_fetch_add
Nesnede depolanan mevcut bir değere değer atomic
ekler.
template <class T>
T* atomic_fetch_add(volatile atomic<T*>* Atom, ptrdiff_t Value) noexcept;
template <class T>
T* atomic_fetch_add(atomic<T*>* Atom, ptrdiff_t Value) noexcept;
Parametreler
Atom
türüne T
yönelik bir atomic
işaretçi depolayan nesne işaretçisi.
Value
türünde ptrdiff_t
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği işaretçinin değeri.
Açıklamalar
işlevi, atomic_fetch_add
kısıtlamasını kullanarak memory_order.memory_order_seq_cst
içinde Atom
depolanan değere atomik olarak eklemek Value
için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
Atomik tür olduğunda atomic_address
Value
türü ptrdiff_t
vardır ve işlem depolanan işaretçiyi olarak char *
ele alır.
Bu işlem, tam sayı türleri için de aşırı yüklenmiştir:
integral atomic_fetch_add(volatile atomic-integral* Atom, integral Value) noexcept;
integral atomic_fetch_add(atomic-integral* Atom, integral Value) noexcept;
atomic_fetch_add_explicit
Nesnede depolanan mevcut bir değere değer atomic
ekler.
template <class T>
T* atomic_fetch_add_explicit(
volatile atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
template <class T>
T* atomic_fetch_add_explicit(
atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
Parametreler
Atom
türüne T
yönelik bir atomic
işaretçi depolayan nesne işaretçisi.
Value
türünde ptrdiff_t
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği işaretçinin değeri.
Açıklamalar
işlevi tarafından atomic_fetch_add_explicit
belirtilen Order
kısıtlamaların içinde memory_order
içinde Atom
depolanan değere atomik olarak eklemek Value
için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
Atomik tür olduğunda atomic_address
Value
türü ptrdiff_t
vardır ve işlem depolanan işaretçiyi olarak char *
ele alır.
Bu işlem, tam sayı türleri için de aşırı yüklenmiştir:
integral atomic_fetch_add_explicit(
volatile atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
integral atomic_fetch_add_explicit(
atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
atomic_fetch_and
Bir değer ve bir nesnede depolanan mevcut bir değer üzerinde bit düzeyinde &
bir atomic
işlem yapar.
template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, atomic_fetch_and
değerinin bit düzeyindeki &
Value
değerini ve içinde depolanan Atom
geçerli değeri Atom
kısıtlamasını kullanarak memory_order.memory_order_seq_cst
değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_fetch_and_explicit
Bir değerin bit düzeyinde &
ve bir nesnede depolanan mevcut bir atomic
değeri gerçekleştirir.
template <class T>
inline T atomic_fetch_and_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_and_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Order
Bir memory_order
.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, atomic_fetch_and_explicit
saklı değerini Atom
bit düzeyinde Value
&
ve tarafından Order
belirtilen bellek kısıtlamaları içinde depolanan Atom
geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_fetch_or
Bir değer ve bir nesnede depolanan mevcut bir değer üzerinde bit düzeyinde or
bir atomic
işlem yapar.
template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, saklı değerini Atom
bit düzeyinde Value
or
ve kullanarak içinde Atom
memory_order.memory_order_seq_cst
depolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.atomic_fetch_or
atomic_fetch_or_explicit
Bir değer ve bir nesnede depolanan mevcut bir değer üzerinde bit düzeyinde or
bir atomic
işlem yapar.
template <class T>
inline T atomic_fetch_or_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_or_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Order
Bir memory_order
.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, atomic_fetch_or_explicit
saklı değerini Atom
bit düzeyinde or
Value
ve tarafından Order
belirtilen kısıtlamalar içinde memory_order
içinde Atom
depolanan geçerli değeriyle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_fetch_sub
Bir nesnede depolanan mevcut bir değerden bir atomic
değeri çıkarır.
template <class T>
T* atomic_fetch_sub(
volatile atomic<T*>* Atom,
ptrdiff_t Value) noexcept;
template <class T>
T* atomic_fetch_sub(
atomic<T*>* Atom,
ptrdiff_t Value) noexcept;
Parametreler
Atom
türüne T
yönelik bir atomic
işaretçi depolayan nesne işaretçisi.
Value
türünde ptrdiff_t
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği işaretçinin değeri.
Açıklamalar
işlevi, atomic_fetch_sub
kısıtlamasını kullanarak memory_order.memory_order_seq_cst
içinde Atom
depolanan değerden atomik olarak çıkarmak Value
için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
Atomik tür olduğunda atomic_address
Value
türü ptrdiff_t
vardır ve işlem depolanan işaretçiyi olarak char *
ele alır.
Bu işlem, tam sayı türleri için de aşırı yüklenmiştir:
integral atomic_fetch_sub(volatile atomic-integral* Atom, integral Value) noexcept;
integral atomic_fetch_sub(atomic-integral* Atom, integral Value) noexcept;
atomic_fetch_sub_explicit
Bir nesnede depolanan mevcut bir değerden bir atomic
değeri çıkarır.
template <class T>
T* atomic_fetch_sub_explicit(
volatile atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
template <class T>
T* atomic_fetch_sub_explicit(
atomic<T*>* Atom,
ptrdiff_t Value, memory_order Order) noexcept;
Parametreler
Atom
türüne T
yönelik bir atomic
işaretçi depolayan nesne işaretçisi.
Value
türünde ptrdiff_t
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği işaretçinin değeri.
Açıklamalar
işlevi, atomic_fetch_sub_explicit
tarafından Order
belirtilen kısıtlamalar içinde memory_order
içindeki Atom
depolanan değerden atomik olarak çıkarmak Value
için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
Atomik tür olduğunda atomic_address
Value
türü ptrdiff_t
vardır ve işlem depolanan işaretçiyi olarak char *
ele alır.
Bu işlem, tam sayı türleri için de aşırı yüklenmiştir:
integral atomic_fetch_sub_explicit(
volatile atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
integral atomic_fetch_sub_explicit(
atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
atomic_fetch_xor
Bir değer ve bir nesnede depolanan mevcut bir değer üzerinde bit düzeyinde exclusive or
bir atomic
işlem yapar.
template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, saklı değerini Atom
bit düzeyinde Value
exclusive or
ve kullanarak içinde Atom
memory_order.memory_order_seq_cst
depolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.atomic_fetch_xor
atomic_fetch_xor_explicit
Bir değer ve nesnede depolanan mevcut bir değer üzerinde bit düzeyinde exclusive or
bir atomic
işlem yapar.
template <class T>
inline T atomic_fetch_xor_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_xor_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde T
bir değer.
Order
Bir memory_order
.
Dönüş Değeri
İşlem gerçekleştirilmeden hemen önce nesnenin atomic
içerdiği değer.
Açıklamalar
işlevi, atomic_fetch_xor_explicit
saklı değerini Atom
bit düzeyinde Value
exclusive or
ve tarafından belirtilen Order
kısıtlamalar içinde memory_order
içinde Atom
depolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.
atomic_flag_clear
Bir atomic_flag
nesnedeki bool
bayrağını içinde memory_order.memory_order_seq_cst
olarak false
ayarlar.
inline void atomic_flag_clear(volatile atomic_flag* Flag) noexcept;
inline void atomic_flag_clear(atomic_flag* Flag) noexcept;
Parametreler
Flag
Nesne işaretçisi atomic_flag
.
atomic_flag_clear_explicit
bool
Belirtilen memory_order
kısıtlamalar içinde bir atomic_flag
nesnedeki bayrağını olarak false
ayarlar.
inline void atomic_flag_clear_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline void atomic_flag_clear_explicit(atomic_flag* Flag, memory_order Order) noexcept;
Parametreler
Flag
Nesne işaretçisi atomic_flag
.
Order
Bir memory_order
.
atomic_flag_test_and_set
nesnesindeki bool
atomic_flag
bayrağını true
, kısıtlamaları memory_order.memory_order_seq_cst
içinde olarak ayarlar.
inline bool atomic_flag_test_and_set(volatile atomic_flag* Flag,) noexcept;
inline bool atomic_flag_test_and_set(atomic_flag* Flag,) noexcept;
Parametreler
Flag
Nesne işaretçisi atomic_flag
.
Dönüş Değeri
öğesinin Flag
ilk değeri.
atomic_flag_test_and_set_explicit
bool
Belirtilen memory_order
kısıtlamalar içinde bir atomic_flag
nesnedeki bayrağını olarak true
ayarlar.
inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline bool atomic_flag_test_and_set_explicit(atomic_flag* Flag, memory_order Order) noexcept;
Parametreler
Flag
Nesne işaretçisi atomic_flag
.
Order
Bir memory_order
.
Dönüş Değeri
öğesinin Flag
ilk değeri.
atomic_init
Bir atomic
nesnede depolanan değeri ayarlar.
template <class Ty>
inline void atomic_init(volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline void atomic_init(atomic<Ty>* Atom, Ty Value) noexcept;
Parametreler
Atom
türünde Ty
bir atomic
değeri depolayan bir nesne işaretçisi.
Value
türünde Ty
bir değer.
Açıklamalar
atomic_init
atomik bir işlem değildir. İş parçacığı güvenli değildir.
atomic_is_lock_free
Bir atomic
nesnedeki atomik işlemlerin kilitsiz olup olmadığını belirtir.
template <class T>
inline bool atomic_is_lock_free(const volatile atomic<T>* Atom) noexcept;
template <class T>
inline bool atomic_is_lock_free(const atomic<T>* Atom) noexcept;
Parametreler
Atom
türünde T
bir atomic
değeri depolayan bir nesne işaretçisi.
Dönüş Değeri
true
üzerindeki Atom
atomik işlemler kilitsizse; değilse, false
.
Açıklamalar
Bu tür üzerinde hiçbir atomik işlem kilit kullanmazsa atomik tür kilitsizdir. Bu işlev döndürürse true
, türü sinyal işleyicilerinde kullanmak güvenlidir.
atomic_load
Bir atomic
nesnede depolanan değeri alır.
template <class Ty>
inline Ty atomic_load(const volatile atomic<Ty>* Atom) noexcept;
template <class Ty>
inline Ty atomic_load(const atomic<Ty>* Atom) noexcept;
Parametreler
Atom
türünde Ty
bir değer içeren bir atomic
nesnenin işaretçisi.
Dönüş Değeri
içinde Atom
depolanan alınan değer.
Açıklamalar
atomic_load
örtük olarak kullanır memory_order.memory_order_seq_cst
.
atomic_load_explicit
Belirtilen memory_order
içindeki bir atomic
nesnede depolanan değeri alır.
template <class Ty>
inline Ty atomic_load_explicit(const volatile atomic<Ty>* Atom, memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_load_explicit(const atomic<Ty>* Atom, memory_order Order) noexcept;
Parametreler
Atom
türünde Ty
bir değer içeren bir atomic
nesnenin işaretçisi.
Order
Bir memory_order
. veya memory_order_acq_rel
kullanmayınmemory_order_release
.
Dönüş Değeri
içinde Atom
depolanan alınan değer.
atomic_signal_fence
Aynı iş parçacığında yürütülen sinyal işleyicileri olan bir çağrı iş parçacığındaki diğer çitler arasında yük/depolama işlemleri arasında sıralamayı zorlayan bir bellek eşitleme temeli olan bir çit görevi görür.
inline void atomic_signal_fence(memory_order Order) noexcept;
Parametreler
Order
Çit türünü belirleyen bir bellek sıralama kısıtlaması.
Açıklamalar
Bağımsız Order
değişken çit türünü belirler.
Value | Açıklama |
---|---|
memory_order_relaxed |
Çitin hiçbir etkisi yok. |
memory_order_consume |
Çit bir çittir. |
memory_order_acquire |
Çit bir çittir. |
memory_order_release |
Çit bir salma çiti. |
memory_order_acq_rel |
Çit hem alma çiti hem de serbest bırakma çitidir. |
memory_order_seq_cst |
Çit hem alma çiti hem de serbest bırakma çitidir ve sıralı olarak tutarlıdır. |
atomic_store
Nesnede atomik olarak bir atomic
değer depolar.
template <class Ty>
inline Ty atomic_store_explicit(const volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline Ty atomic_store_explicit(const atomic<Ty>* Atom, T Value) noexcept;
Parametreler
Atom
türünde Ty
bir değer içeren bir atomic
nesnenin işaretçisi.
Value
türünde Ty
bir değer.
Açıklamalar
atomic_store
kısıtlaması içinde tarafından Atom
işaret edilen nesnede memory_order.memory_order_seq_cst
depolarValue
.
atomic_store_explicit
Nesnede atomik olarak bir atomic
değer depolar.
template <class Ty>
inline Ty atomic_store_explicit(
const volatile atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_store_explicit(
const atomic<Ty>* Atom,
T Value,
memory_order Order) noexcept;
Parametreler
Atom
türünde Ty
bir değer içeren bir atomic
nesnenin işaretçisi.
Value
türünde Ty
bir değer.
Order
Bir memory_order
. , memory_order_acquire
veya memory_order_acq_rel
kullanmayınmemory_order_consume
.
Açıklamalar
atomic_store
tarafından işaret edilen Atom
nesnesinde, tarafından Order
belirtilen içinde memory_order
depolarValue
.
atomic_thread_fence
İlişkili bir atomik işlem olmadan yük/depolama işlemleri arasında sıralamayı zorlayan bir bellek eşitleme temeli olan çit görevi görür.
inline void atomic_thread_fence(memory_order Order) noexcept;
Parametreler
Order
Çit türünü belirleyen bir bellek sıralama kısıtlaması.
Açıklamalar
Bağımsız Order
değişken çit türünü belirler.
Value | Açıklama |
---|---|
memory_order_relaxed |
Çitin hiçbir etkisi yok. |
memory_order_consume |
Çit bir çittir. |
memory_order_acquire |
Çit bir çittir. |
memory_order_release |
Çit bir salma çiti. |
memory_order_acq_rel |
Çit hem alma çiti hem de serbest bırakma çitidir. |
memory_order_seq_cst |
Çit hem alma çiti hem de serbest bırakma çitidir ve sıralı olarak tutarlıdır. |
kill_dependency
Bağımlılığı kaldırır.
template <class Ty>
Ty kill_dependency(Ty Arg) noexcept;
Parametreler
Arg
türünde Ty
bir değer.
Dönüş Değeri
Dönüş değeri şeklindedir Arg
. değerlendirmesi Arg
, işlev çağrısına bağımlılık taşımaz. İşlev, olası bir bağımlılık zincirini kırarak derleyicinin daha verimli kod oluşturmasına izin verebilir.