Aracılığıyla paylaş


<atomic> işlevleri

<atomic> Üst bilgi aşağıdaki işlevleri sağlar:

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 atomicbir Ty 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 atomicbir Ty 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_releaseolamazmemory_order_acq_rel, 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 Valuebelirtilen bellek sırası kısıtlamaları uygulanarak ile Order1 değiştirilir. Değerler eşit değilse, işlem tarafından işaret edilen değeri, tarafından işaret Exp edilen Atom 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 atomicbir Ty 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 bağımsız değişkenler içeren zayıf bir memory_order.memory_order_seq_cst 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 atomicbir Ty 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_releaseolamaz memory_order_acq_rel 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 Valuedeğiştirmek için kullanırAtom.

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 atomicbir Ty 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 AtomValuedepolanan memory_order.memory_order_seq_cst 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 atomicbir Ty 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 Atomdepolanan Value 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 atomicyönelik bir T 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 Value içinde Atomdepolanan değere atomik olarak eklemek memory_order.memory_order_seq_cst 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 atomicyönelik bir T 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 Valuekısıtlamaların içinde Atom içinde memory_orderdepolanan değere atomik olarak eklemek Order 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 atomicbir T 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 Atom& değerini ve içinde depolanan Valuegeç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 atomicbir T 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 Atombelirtilen bellek kısıtlamaları içinde depolanan Ordergeç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 atomicbir T 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 atomic_fetch_or bit düzeyinde Atomor ve kullanarak içinde ValueAtomdepolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.memory_order.memory_order_seq_cst

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 atomicbir T 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 orValue ve tarafından Atombelirtilen kısıtlamalar içinde memory_order içinde Orderdepolanan 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 atomicyönelik bir T 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 Value içinde Atomdepolanan değerden atomik olarak çıkarmak memory_order.memory_order_seq_cst 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 atomicyönelik bir T 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 Valuebelirtilen kısıtlamalar içinde Atom içindeki memory_orderdepolanan değerden atomik olarak çıkarmak Order 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 atomicbir T 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 atomic_fetch_xor bit düzeyinde Atomexclusive or ve kullanarak içinde ValueAtomdepolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.memory_order.memory_order_seq_cst

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 atomicbir T 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 exclusive orValue ve tarafından belirtilen Atomkısıtlamalar içinde memory_order içinde Orderdepolanan geçerli değerle değiştirmek için bir okuma-değiştirme-yazma işlemi gerçekleştirir.

atomic_flag_clear

Bir bool nesnedeki atomic_flag bayrağını içinde falseolarak memory_order.memory_order_seq_cstayarlar.

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 atomic_flag kısıtlamalar içinde bir false nesnedeki bayrağını olarak memory_orderayarlar.

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 boolatomic_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 atomic_flag kısıtlamalar içinde bir true nesnedeki bayrağını olarak memory_orderayarlar.

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 atomicbir Ty 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 atomicbir T 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 atomicbir değer içeren bir Ty 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 atomiciçindeki bir memory_order 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 atomicbir değer içeren bir Ty nesnenin işaretçisi.

Order
Bir memory_order. veya memory_order_releasekullanmayınmemory_order_acq_rel.

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.

Değer 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 atomicbir değer içeren bir Ty nesnenin işaretçisi.

Value
türünde Tybir değer.

Açıklamalar

atomic_storekısıtlaması içinde tarafından Valueişaret edilen nesnede Atom depolarmemory_order.memory_order_seq_cst.

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 atomicbir değer içeren bir Ty nesnenin işaretçisi.

Value
türünde Tybir değer.

Order
Bir memory_order. , memory_order_consumeveya memory_order_acquirekullanmayınmemory_order_acq_rel.

Açıklamalar

atomic_storetarafından işaret edilen Valuenesnesinde, tarafından Atombelirtilen içinde memory_order depolarOrder.

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.

Değer 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>