アトミック
提供: C言語入門
2016年2月13日 (土) 17:48時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「アトミック ('''atomic''') とは、不可分、原子的であることです。「あるオペレーション」を「ほかのオペレーション」で割り...」)
スポンサーリンク
アトミック (atomic) とは、不可分、原子的であることです。「あるオペレーション」を「ほかのオペレーション」で割り込むことができないことを言います。
読み方
- アトミック
- あとみっく
- atomic
- あとみっく
概要
アトミック操作は、途中に割り込まれない操作です。
銀行口座の入金や出金の処理は、排他制御が必要なクリティカルセクションがあります。排他制御を行いアトミック性を確保します。
ロック
アトミック性を実現するために、ロックが利用されます。 ロックは、セマフォ(Semaphore)やミューテックス(Mutex)が利用されます。
C言語でのアトミックな処理
C11では、 _Atomic と呼ばれるアトミック型修飾子が追加され、アトミック操作(アトミックオペレーション)用のライブラリが提供されました。 ヘッダファイル stdatomic.h をインクルードすることで、_Atomic 型修飾子とアトミックオペレーションの関数を利用します。
C言語のアトミック変数の利用の例
/* * stdatomic1.c * Copyright (C) 2016 kaoru <kaoru@localhost> */ #include <stdatomic.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { _Atomic int x; _Atomic int x; _Atomic int y = ATOMIC_VAR_INIT(255); // 変数の初期化 x = y; // 代入 exit(EXIT_SUCCESS); }
関連項目
ツイート
スポンサーリンク