/ * 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 ; }