マルチスレッドプログラミング相談室 その8at TECHマルチスレッドプログラミング相談室 その8 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト450:デフォルトの名無しさん 10/08/29 12:59:13 まあ、>>445は理解できなかったって言ってるんだから説明も出来ないだろう 451:デフォルトの名無しさん 10/10/01 17:29:29 あんまり理解できてないのでうんこみたいな質問申し訳ないんだけど、 スレッドが二つ(A,B)あって、 変数 int a にスレッドAがひたすら数字を入れて、スレッドBはひたすらその数字を読むだけの場合、 int aの書き込み・読み込み時にクリティカルセクション使う必要はある? 手元で試してみたら片方が読み込みオンリーの場合正常に動いたんよね 452:デフォルトの名無しさん 10/10/01 18:10:07 移植性のあるコードを書こうと思ったら必要なる。 ただハードやOS・言語・コンパイラ・ライブラリなどが想定するメモリモデル (平たく言えばマルチスレッドでメモリがどう見えるかのルール)によっては それで正しいケースもある。 具体的な回答が欲しいならpthread、Win32のスレッド、Javaや.NETくらいの くくりで質問するといいよ。 453:デフォルトの名無しさん 10/10/01 18:34:06 >>451 まず、書き込まれた値が化けたりせず正常に読めるか、という点については 適切にアラインされている、CPUのワードサイズ以下の値なら、まず問題ない。 Cコンパイラにおいて、「int」として扱われる値を Cコンパイラに配置させる場合は、まず大丈夫。 ただし、スレッドAが書き換えた後にスレッドBが読み出したとき 直前の変更が適切に反映されているかどうか、については 環境依存、というか普通は保証されない。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch