剣C言語原子

/ * GCCはアトミック操作を内蔵* / 
の#include <stdio.hの> / * 
知識が追加されました:
    GCC 4.1.2バージョンの後、内蔵X86またはX86_64アトミック操作のサポート。すなわち、サードパーティのライブラリ(例えば、のpthread)を必要としないロック保護の
    ようなことができ1,2,4,8バイト値またはポインタ型の、アトミック加算/減算/ AND / OR / XOR演算
    アトミックオペレーション本質的な目的は次のとおりです。より多くのスレッドシナリオ、ロックせずに、オペレーティング加算/減算/および/または/ ISOの実現のためのセキュリティタイプ値
    APIの
    タイプ__sync_fetch_and_addを(* PTRタイプ、値型、...)/ / * *のPTR * ptrが結果を更新するために、値に加え、操作前の値を返すPTR 
    型__sync_fetch_and_sub(タイプ*のPTR、タイプ値、...)// * PTRの値から減算され、結果を更新しますPTR、および操作を返す前に* ptrは値
    型__sync_fetch_and_or(型* ptrに、タイプの値、...)// * PTRと位相値または、* ptrは結果を更新し、操作* PTRの前に値を返すために
    タイプ__sync_fetch_and_and (タイプ* ptrに、型の値は、 ...)// *値とPTR。結果を操作する前に、*のPTRに更新され、* ptrは値を返すされます










    (型* ptrに、型__sync_fetch_and_xorタイプ // ...、値) XOR値を持つ* ptrは、* ptrは結果を更新するために、操作* PTRの前に値を返す

    型__sync_fetch_and_nand(型* ptrに、型 、値.. 。)// * ptrが負の値と位相の後に、結果に* PTRを更新する前に、操作は*のPTRの値を返す

    型__sync_add_and_fetch(型* ptrに、タイプの値を、...)// 付加価値を* ptrにした後、* ptrは*のPTRに結果を更新し、新たな価値の動作に戻り

    型__sync_sub_and_fetch(型* ptrに、タイプの値を、...)// * PTRが*のPTRに結果を更新し、値から減算され、リターンを操作後の新しい値* PTRの

    タイプ__sync_or_and_fetch(型* ptrに、タイプの値、...)// * PTRと相対値や、* ptrは結果を更新し、新しい* PTR値の後に動作に復帰する

    タイプの__sync_and_and_fetch(タイプ* ptrは、タイプ値、...) // 値を持つ* PTR。結果は、*のPTR *のPTRに更新され、新しい操作の値を返している

    タイプ__sync_xor_and_fetch(型* ptrに、タイプ /)値、... / * * ptrに排他的論理和値の後に新しい値にPTR、*結果を更新するために、PTR、および動作に戻ります

    __sync_nand_and_fetchタイプ(タイプ* ptrに、タイプの値、...)// * PTRが否定され、値の後に。結果は*のPTRに更新し、新しい*のPTR値で動作するために返される

    ブール__sync_bool_compare_and_swap(型*のPTRを、タイプOLDVALタイプOLDVAL値を持つたnewval、...)// * ptrを比較2が等しい場合、その後、PTRたnewval *を更新し、真に戻り

    型たnewvalのOLDVAL型の型*のPTRのタイプ__sync_val_compare_and_swap(、の、...)両者が等しい場合//、OLDVAL * PTR値と操作* PTR値前たnewval * PTR戻ると、更新比較

    メモリフルフェンス送信// __sync_synchronize(...)を

    型__sync_lock_test_and_set(タイプ*のPTR、タイプ値は、...)//値書き込み* ptrが、* ptrがロックとするの操作*のPTR値の前に戻ります。つまり、スピンロックセマンティックしようとされ

    (、...型* ptrにボイド__sync_lock_releaseを //) 0 *のPTRに書き込まれ、* PTRとロックを解除します。即ち、スピンロックセマンティクスのロックを解除する

* / 

int型のmain()
{ 
    戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/zhanggaofeng/p/11666059.html