06/04/17 12:15:16
>>499
そうね。
Cの場合は下記を参照
URLリンク(www.yuasa.kuis.kyoto-u.ac.jp)
Javaはこのあたり参照
URLリンク(www.netgene.co.jp)
C/C++の場合は、volatileはスレッド間のメモリ可視制御を何もやっていないけど、
Javaについては意味がある。
現状Cocoaの場合、インラインアセンブラでメモリバリアを差し込むか、
メモリバリアを入れるOSコールを呼び出す必要がある。
Cocoaが下請けに使っているpthreadについては、「メモリ同期を行う関数」一覧があるので調べられる。
が、Cocoaのどのクラスのどのメソッドが該当するのかは、ドキュメントが見当たらないので推測になる。
念のために書いておくが、494の認識はマルチプロセッサ登場前は概ね正解だった(それでもCPUによる)。
そのため嘘を書いている本は大量に残っている。
ちゃんとした本はあまり無いが、Effective C++を書いたエロイ人のドキュメントもあるので、
英語が読める人には推奨しておく。
URLリンク(www.nwcpp.org)