トップページ > プログラム > 2015年11月01日 > a/KTrDXN

書き込み順位&時間帯一覧

1 位/208 ID中時間01234567891011121314151617181920212223Total
書き込み数30000000000340010100000012



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Win32API質問箱 Build121 [転載禁止]©2ch.net
C++相談室 part120 [転載禁止]©2ch.net
HSP総合スレ【part 8】 [転載禁止]©2ch.net
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net

書き込みレス一覧

Win32API質問箱 Build121 [転載禁止]©2ch.net
507 :デフォルトの名無しさん[sage]:2015/11/01(日) 00:00:44.95 ID:a/KTrDXN
そんなにあいてしてほしい?
C++相談室 part120 [転載禁止]©2ch.net
302 :デフォルトの名無しさん[sage]:2015/11/01(日) 00:12:43.03 ID:a/KTrDXN
本人じゃなくても考えれば分る事
ある機能上纏まった扱いになるメモリ領域
有体に言えば排他処理される単位のメモリ領域
それを複数のスレッドから同時にアクセスするから色々な問題が出てくる
しかし、先にも書いたが、排他処理されるわけだから
実際には複数のスレッドから同時にアクセスされることはない
だから問題は起こらない
もし起こるとすれば排他処理を忘れてバグってるとき
C++相談室 part120 [転載禁止]©2ch.net
304 :デフォルトの名無しさん[sage]:2015/11/01(日) 00:23:20.47 ID:a/KTrDXN
問題は起こらない、これ以上話し合う必要は無い
HSP総合スレ【part 8】 [転載禁止]©2ch.net
805 :デフォルトの名無しさん[sage]:2015/11/01(日) 11:39:04.48 ID:a/KTrDXN
HSP公式掲示板でやれ
C++相談室 part120 [転載禁止]©2ch.net
313 :デフォルトの名無しさん[sage]:2015/11/01(日) 11:51:54.14 ID:a/KTrDXN
>>305
いいや、守れる
例えばWindowsだと排他制御はEnterCriticalsectionで行うことが多いだろう
EnterCriticalsectionの例で考えると
EnterCriticalsection( &a ); //A
EnterCriticalsection( &b ); //B
こういう呼び出しがあって、AとBの呼び出し順がコンパイラの最適化で入れ替わる事はありえるか?
そんなことしたら即デッドロック、そんなおばかなコンパイラはありえない
他にも
EnterCriticalsection( &a ); //A
b=1; //B
こういうコードがあったとして、AとBが入れ替わる事はありえるか?
そんなことしたらBのコードが保護されなくなる、そんな最適化は常識的にありえないだろう

つまり、排他制御で囲まれている部分を飛び越えてのコードの入れ替えは起こるわけがないし、
排他制御の中のコードは一つのスレッドからしかアクセスされないので、単に排他制御にだけ気を使っとけば良い
C++相談室 part120 [転載禁止]©2ch.net
314 :デフォルトの名無しさん[sage]:2015/11/01(日) 11:55:38.29 ID:a/KTrDXN
排他制御だけ適切にしとけば
最適化によるコードの入れ替えやらアウトオブオーダーやらCPUキャッシュやらの
問題はすべて解決するし、そういう風にCPUもコンパイラも作って有るので
とにかく排他制御だけしっかりやっとけってこった
それ以上の議論は必要ない
C++相談室 part120 [転載禁止]©2ch.net
315 :デフォルトの名無しさん[sage]:2015/11/01(日) 12:10:45.61 ID:a/KTrDXN
コンパイラの最適化でコードの入れ替えが〜で問題になっていたのは
スレッドAで何か変数を読み書きをしていて
スレッドBからそれを読んだら変数の書き換えのタイミングが意図しないものになっていた
というものであるが、
言うまでもないが、複数のスレッドから同じ領域を読み書きしている状況は排他制御が壊れてバグっている
例外的にノンブロッキングなキューなどで意図的にそういうことをすることもあるだろうが、通常は狂った状態
バグった時の動作について議論しても意味がない、そんな暇があったらしっかり排他制御しろ
排他制御さえしておけば問題ないし、実際、世の中のプログラムはそうすることで
コンパイラの最適化でのコードの入れ替えなぞ気にする事もなく普通に動いているし
そうなるようにコンパイラもCPUもちゃ〜んと作ってある
議論の無駄
C++相談室 part120 [転載禁止]©2ch.net
318 :デフォルトの名無しさん[sage]:2015/11/01(日) 12:17:56.33 ID:a/KTrDXN
お前もう議論する気もなくなるぐらいバカだな
コンパイラは、入れ替えてよいかの判断材料が何もなければ、ただ単に入れ替えない
あたりまえ
C++相談室 part120 [転載禁止]©2ch.net
320 :デフォルトの名無しさん[sage]:2015/11/01(日) 12:20:24.59 ID:a/KTrDXN
constなんかキャストしたら外せるし、コンパイラはそんなことを最適化の判断材料にはしない
ここは釣堀かよ
C++相談室 part120 [転載禁止]©2ch.net
323 :デフォルトの名無しさん[sage]:2015/11/01(日) 12:23:34.31 ID:a/KTrDXN
const int value = 1;
みたいなのは確かに最適化に使われるconstかもね
C++相談室 part120 [転載禁止]©2ch.net
346 :デフォルトの名無しさん[sage]:2015/11/01(日) 15:55:39.84 ID:a/KTrDXN
もはや面倒だからよんでもないんだけど
排他処理さえしっかり出来ていれば問題ないよ
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
172 :デフォルトの名無しさん[sage]:2015/11/01(日) 17:43:20.82 ID:a/KTrDXN
当然あるけど、Delphi使ってれば良いよ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。