- 1 名前:デフォルトの名無しさん mailto:sage [2005/11/03(木) 11:23:05 ]
- マルチスレッドプログラミングについて語るスレ。
OS・言語・環境は問わないが、それゆえ明記すべし。 その1 pc3.2ch.net/test/read.cgi/tech/997345868/ その2 pc5.2ch.net/test/read.cgi/tech/1037636153/ その3 pc8.2ch.net/test/read.cgi/tech/1098268137/
- 976 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 19:27:00 ]
- お前用の検証スレじゃないんだけど。
もう言いたいことは言ったろ うざいからwikiでも立ててそっちでやってくんね?
- 977 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 19:39:54 ]
- どうしても書き込みたいならコテハンかトリップたのむ。
- 978 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 19:49:57 ]
- >>976 みたいな馬鹿はおいといて
2chの住民に検証協力してくれというなら >>975 くらいの準備はしても良いと思う
- 979 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 20:15:39 ]
- 結果報告なんかをここでやらないならいいよ
正直つまんないのでウンザリしてる
- 980 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 20:27:34 ]
- >978
>975 は遠回しに断ってるんじゃないかな。
- 981 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 22:33:50 ]
- >>943
根本的なところが馬鹿っぽいのに、 とても流暢に(内容的に脱力な)文章を書ける才能に感嘆する。
- 982 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 22:49:03 ]
- >>975
どうせならワームとして世界中のPCにばら撒いて 宿主PC上の実行結果を自分宛てにレポートさせるように 実行させれば良いのでは?
- 983 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 22:56:43 ]
- 前々スレくらいでvolatile厨を繁殖させた者です。
この話題って、あの時のフラグ変化の検出の話題と凄く似ていると思う。 あの時は単なるフラグで、1ビットでも変化している事を検出できれば 良かったから、不必要にややこしくしそうで触れなかったんだけど。 前の時のポイントは、 1. メモリから読み込んだ値を利用(計算)した結果を書き込むのではなく、 完全に新規な値をメモリに書き込む。 2. 更新前の古い値を他のプロセッサがキャッシュの関係で読み込んでも、 伝搬されて更新された値を近いうちに読み込めればよい。 という前提において、 必ずしも同期を取らなくても動作に支障はないが、最適化による レジスタへの張り付きを防止するためにvolatileは必要となる。 今回も似たようなもので、更新前のメモリの内容に依存しないので、 ワード境界に整列されたワード単位のメモリ転送命令がアトミックに 行われるかどうかを確認するだけで解決できるんじゃないの?
- 984 名前:983 mailto:sage [2006/09/09(土) 22:57:37 ]
- ついでに、OS依存、アーキテクチャ依存だって言う必要もないのでは?
C言語から見たら、スレッドの存在そのものが環境依存なわけだし。 >IA-32 Intel® Architecture Software Developer's Manual, >Volume 3A: System Programming Guide >7.1.1 Guaranteed Atomic Operations これを見ると、 >basic memory operations will always be carried out atomically なわけで、少なくともワード境界に整列されたワード転送なら アトミックに行われる事が保証されているように読めるのだが。
- 985 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 23:17:13 ]
- 次スレ立ってる?
- 986 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 00:10:02 ]
- 立てるわ
- 987 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 00:20:09 ]
- 立てた
pc8.2ch.net/test/read.cgi/tech/1157814833/l50
- 988 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 00:29:26 ]
- >>983
> という前提において、 そういう前提かどうかは明らかにされていない >>984 > ついでに、OS依存、アーキテクチャ依存だって言う必要もないのでは? 「世に出回っている大抵のWindowsマシンでおかしくならない線」 というあいまいな線引きしかなされていない つーかさ、 spec等から確認できることもせずに、いきなり検証コード持ち出して 「ホラ、動いてるから問題ないじゃん」 なんて言われてもさ、そのコード・やり方を信用する人っているのかね。 仮に確認できても、前提を考えれば、いかに狭い範囲でしか使えないかが すぐに分かると思うんだが、それをしない理由はなんだろうね。 もう少しアタマ使えないかな。
- 989 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 00:36:28 ]
- >>988
>spec等から確認できることもせずに、いきなり検証コード持ち出して >「ホラ、動いてるから問題ないじゃん」 >なんて言われてもさ、そのコード・やり方を信用する人っているのかね。 悲しいけど現実にはかなり沢山いると思う 実際事故は多発してるでしょ?
- 990 名前:983 mailto:sage [2006/09/10(日) 01:08:03 ]
- >>988
>「世に出回っている大抵のWindowsマシンでおかしくならない線」 >というあいまいな線引きしかなされていない これが微妙な線引きだと言いたいのもわかるけど、 世の中のPC〜WSクラスでSMP/Multi Coreが可能なCPUの 大半はIA-32なアーキテクチャなんじゃないの? >そういう前提かどうかは明らかにされていない まず、>>923のコードではaから読み出した結果を利用して aに再代入しているわけではないので、1.の前提は成り立つ。 で、「0x0000ffffか0xffff0000以外の数字が表示されるか」から、 aの更新が他のプロセッサに即時に伝搬される必要もないし、 どちらかの値になれば良くて、読み出し結果が0xffffffffの ように混ざり合わなければいいだけなので、2.も成り立つ。 #とりあえず、初期値が延々表示される、、ってのは置いといて…。 少なくとも、今のところはこの考え方がまずい、 って証拠も誰も示していないんだよね。
- 991 名前:983 mailto:sage [2006/09/10(日) 01:23:24 ]
- この辺のところはDCLみたいに覆されることもあるかもしれない。
で、DCLにも気になっているところがあって、 Singletonを保証するためのDCLは危険なのは解るんだけど、 100%のSingletonであることに依存しているわけではなくて、 運悪く初期化時に複数インスタンスが生成されてしまっても 許容できる状況でもDCLは使っちゃいけないのかな? 生成にそれなりに時間かかるからキャッシュ目的でSingletonに してるけど、複数回生成されて違うオブジェクトを返そうが、 単なるキャッシュだから実害はないっていうような場合とかで。
- 992 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 01:26:06 ]
- マルチスレッドを扱い続けて30年の漏れが断言するが、
>>923 のコードでは絶対に「0x0000ffff か 0xffff0000 以外の数字」は表示されない! これで勘弁してもらえないか?
- 993 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 02:50:37 ]
- CPUによる
- 994 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 03:03:58 ]
- 俺なんかマルチスレッドと暮らし始めて60年だぜ
- 995 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 03:56:28 ]
- うめようよ
- 996 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 09:01:19 ]
- 2chを見続けて10年の俺が断言するが、
>>992の言うことに間違いはない!
- 997 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 09:06:40 ]
- >>988
>なんて言われてもさ、そのコード・やり方を信用する人っているのかね。 顔が見えないのをいいことに、著しく礼儀を欠いた発言をする人間も信用できないが
- 998 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 09:16:58 ]
- ヒント:2ch
- 999 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 09:57:14 ]
- >>997
いるよ。 うちの新人はWebで調べたコードは絶対間違いないって言い張る。 そういえば、去年までいた中国人も同じ事いってたよ。
- 1000 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 10:14:33 ]
- pthread_join( pc8.2ch.net/test/read.cgi/tech/1157814833/ , NULL);
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|