アプリ版:「スタンプのみでお礼する」機能のリリースについて

複数のCPUでプログラムを動かすとき両方のプログラムで共有する変数にはvolatileを付けてもよいのでしょうか
https://oshiete.goo.ne.jp/qa/9459084.html のNo.2の回答において複数スレッドからの使用を想定していないということですが複数CPUの場合は使用できますか
あるいはvolatile以外の方法で変数を共有するにはどうしたらよいのでしょうか

考えがまとまっていませんが回答をいただきながら整理しようと思います

A 回答 (1件)

volatileは低レベル機能で基本的にOSカーネルとかデバイスドライバとか書く場合に使うもので、アプリケーションで気軽に使うものではありません。


まずキャッシュもできないのでアクセスするたびにプログラムの速度に大幅なブレーキがかかります。

基本的に複数スレッドから変数を共有するようなプログラムは書かないことです。特に複数スレッドから書き込める変数は同期と整合性の確保が大変で性能にも悪影響が出ます。
プロセス/スレッド間でデータのやり取りが必要ならOSのプロセス間通信機能を使いましょう。同期が必要ならOSの同期機能を使いましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
大変よくわかりました、ありがとうございます
今回は複数のCPUのプログラムなのでvolatileを付けようと思います

お礼日時:2016/10/31 19:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!