Aracılığıyla paylaş


<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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Exp
türünde Tybir değerin işaretçisi.

Value
türünde Tybir 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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Exp
türünde Tybir değerin işaretçisi.

Value
türünde Tybir 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_relolamazmemory_order_release, değerinden Order1daha 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 Expdeğ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 Order1belirtilen 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 Order2belirtilen 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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Exp
türünde Tybir değerin işaretçisi.

Value
türünde Tybir 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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Exp
türünde Tybir değerin işaretçisi.

Value
türünde Tybir 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_relolamaz memory_order_release veya değerinden Order1daha 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 Atomdeğ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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tybir değer.

Dönüş Değeri

Değişimden önceki depolanmış değeri Atom .

Açıklamalar

atomic_exchange işlevi ile içinde Valuememory_order.memory_order_seq_cstdepolanan 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 Valuedeğ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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tybir 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 Valuedepolanan Atom değeri, tarafından Orderbelirtilen 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 Työnelik bir atomic işaretçi depolayan nesne işaretçisi.

Value
türünde ptrdiff_tbir 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 Atomdepolanan 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_addressValue 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 Työnelik bir atomic işaretçi depolayan nesne işaretçisi.

Value
türünde ptrdiff_tbir 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 Orderkısıtlamaların içinde memory_order içinde Atomdepolanan 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_addressValue 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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Atomgeç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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Orderbelirtilen bellek kısıtlamaları içinde depolanan Atomgeç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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Atommemory_order.memory_order_seq_cstdepolanan 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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Orderbelirtilen kısıtlamalar içinde memory_order içinde Atomdepolanan 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 Työnelik bir atomic işaretçi depolayan nesne işaretçisi.

Value
türünde ptrdiff_tbir 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 Atomdepolanan 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_addressValue 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 Työnelik bir atomic işaretçi depolayan nesne işaretçisi.

Value
türünde ptrdiff_tbir 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 Orderbelirtilen kısıtlamalar içinde memory_order içindeki Atomdepolanan 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_addressValue 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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Atommemory_order.memory_order_seq_cstdepolanan 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 Tbir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tbir 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 Orderkısıtlamalar içinde memory_order içinde Atomdepolanan 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_cstolarak falseayarlar.

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

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_cstiç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 Flagilk değeri.

atomic_flag_test_and_set_explicit

bool Belirtilen memory_order kısıtlamalar içinde bir atomic_flag nesnedeki bayrağını olarak trueayarlar.

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 Flagilk 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 Tybir atomic değeri depolayan bir nesne işaretçisi.

Value
türünde Tybir 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 Tbir 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 Tybir değer içeren bir atomic nesnenin işaretçisi.

Dönüş Değeri

içinde Atomdepolanan alınan değer.

Açıklamalar

atomic_load örtük olarak kullanır memory_order.memory_order_seq_cst.

atomic_load_explicit

Belirtilen memory_orderiç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 Tybir değer içeren bir atomic nesnenin işaretçisi.

Order
Bir memory_order. veya memory_order_acq_relkullanmayınmemory_order_release.

Dönüş Değeri

içinde Atomdepolanan 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 Tybir değer içeren bir atomic nesnenin işaretçisi.

Value
türünde Tybir değer.

Açıklamalar

atomic_storekısıtlaması içinde tarafından Atomiş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 Tybir değer içeren bir atomic nesnenin işaretçisi.

Value
türünde Tybir değer.

Order
Bir memory_order. , memory_order_acquireveya memory_order_acq_relkullanmayınmemory_order_consume.

Açıklamalar

atomic_storetarafından işaret edilen Atomnesnesinde, tarafından Orderbelirtilen 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 Tybir 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.

Ayrıca bkz.

<atomic>