1 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:35:32 ] マルチスレッドプログラミングについて語るスレ。 その1 pc3.2ch.net/tech/kako/997/997345868.html その2 pc5.2ch.net/test/read.cgi/tech/1037636153/ その3 pc8.2ch.net/test/read.cgi/tech/1098268137/ その4 pc8.2ch.net/test/read.cgi/tech/1130984585/ その5 pc11.2ch.net/test/read.cgi/tech/1157814833/ OS・言語・環境は問わないが、それゆえ明記すべし。 テンプレ 【OS】 【言語】 【実行環境】 【その他突起する事項】
76 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:15:47 ] この絡み方厨房の典型だなw
77 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:18:42 ] そうやってすぐ厨房扱いする奴も大して変わらん
78 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:45:02 ] 厨房に厨房が返してるだけだろ
79 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:21:13 ] mutexが永田ロックかけてるのか まだロックかけないで痛めつけてるのか 計測するほうほうないですか? pthreadでお願いします。
80 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:42:55 ] C言語歴15年とかいう人が ローカルにコピーすれば以下のような コードがOKだと主張するのですが本当なのw? struct data{ int len; char buf[128]; } struct data[6]; int index; これをグローバルで定義しておいて void *thread_1(void *arg){ data[index]; //データ書き込み処理 index++; } void *thread_2(void *arg){ int l_index = index; //データ読み込み処理 } 絶対 indexをローカル変数に代入して 順番考慮してないから2回処理しそうな 気がするんだけどさー なんかこんな人のプログラム見るのやだ 逃げたいタスケテ
81 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:48:16 ] >>80 実はスレッドでなくファイバだったとか。
82 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:50:26 ] HPの鯖でpthread使って書いてますけど ファイバってことはありえないですよねw? まじ釣りとかじゃなくて本気でこんなコード生成 するんですよ。困ってる
83 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:53:21 ] >>80 オマエの日本語やコードの貼り方も相当なもんだ。困ってる
84 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:53:47 ] ごめん許してくれ
85 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:55:27 ] マ板向けの話題かな
86 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:56:49 ] これって絶対ネタだよな 馬鹿でも考えりゃ排他必要な事解かると
87 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:03:55 ] 満を持してvolatileの登場だな
88 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:06:04 ] >>87 それもネタだろw
89 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:51:08 ] >>80 悪いがそのコードの意味がわからなくてなんとも胃炎。
90 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:06:45 ] >>89 文脈から想像して、 int l_index = index; このようにindexをローカル変数にコピーしてから、そのコピーを使って 配列参照すればロックとかいらない、とC言語歴15年さんが主張している。 と読んだ。 ただ、コードは明らかに抜粋なので、状況によってはOKなのかも知れない可能性はある。 thread_1がデータの更新処理で、thread_2は現在の最新データを取得するだけ、 配列は十分に大きく、データの空チェックは別にあるとか。 あるいは、thread_1とthread_2でキューを実現しようとしているなら問題だけど、その場合も コードが断片すぎるので、前後の記述によっては問題ないかもしれず。 それを含めて>>80 が明らかな問題であることを認識した上で書き込んでいるなら、 最初からマ板に行くべきかと。
91 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:14:21 ] >>90 SMPなんかでCPU入れ替わったら 問題おきないかなぁ?
92 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:22:06 ] >>90 キューなどの順序性保証が必要なものだとあきからにやばいけど、 掲示板などに書き込まれたデータの最新の1レコードを定期的に 表示更新っていうパターン(厳密な意味での最新版にはこだわらないもの) なら、volatileのレベルで妥協できる場合もあるんじゃないかって 思ったんだけど。 thread_2の例が現状のindexをいじらずに現時点のindexのレコード参照 しているだけみたいだから。
93 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:26:28 ] 絶対2回読む可能性捨てきれないし こんな実装商用レベルでしないよなぁ きっとどっかの研究室だろうなぁ。 教授が書いたコードだから絶対だみたいな感じなんだろうなぁ
94 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 11:03:22 ] それならまさに発見的手法だな
95 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:57:45 ] 【OS】 WinXP SP2 【言語】 VC8 【実行環境】 2000以降、可能であれば9x以降 【その他突起する事項】 C++ソースコード上での解決が望ましい TerminateThreadだと、終了させたいスレッドのハンドルがあればスレッドを終わらせる事ができますが、 これは基本的に最終手段としてスレッドを終わらせる為の物で、初期のスタック割り当てを解除する機会がなかったり、色々問題があるようです。 なので、スレッド外部からExitThreadの様にスレッドを終わらせるにはどうすればいいんでしょうか。 対象のスレッド内で、終了される"かもしれない"タイミングは把握可能です。
96 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:10:34 ] 終了フラグを用意して、スレッドが終わって欲しくなったらフラグを立てる。 対象スレッド内で、今だったら別に終了してやってもいいというタイミングで、フラグをチェックして自主的に終了する。 フラグの読み書きは、ちゃんとクリティカルセクションやミューテックスで囲むか、インターロック関数を使うか、メモリバリアを張ること。
97 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:11:47 ] ・終われフラグなりイベントなりを用意 ・要所要所でフラグ/イベントをチェックしてオレオレ例外をthrow ・スレッドの開始点でtry〜catch でとりあえずできる 他のやり方でも結局こうなると思う コールスタックにC関数が挟まるとダメな場合もあるので注意
98 名前:.95 mailto:sage [2007/08/28(火) 23:18:11 ] Sleepしてる間に終わらせるフラグが立つので、待ち時間が長いです...
99 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:25:03 ] >>95 メッセージなり何なりを対象スレッドに投げて、対象スレッドに自ら涅槃の道に旅立ってもらう。
100 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:44:30 ] >>98 Sleepを細かく分ければいい。 for (int i=0; i < 10; ++i) { Sleep(100); check_exit_flag(); } こういうポーリングがいやならEventつかって待機関数で待つとか
101 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 08:59:33 ] 【OS】 Xp sp2 【言語】 VBA 【実行環境】 Q6600 VBAってマルチスレッドできないともできるとも明記されていないんです。 質問なんですが、VBAにかかわらずマルチスレッド化によって、『比較的発生しやすい障害』というのは何でしょうか? C等ならPUSH、POP等のメモリ操作がいちばん気をつかいそうなところですよね。 VBAでは、適所に Do Eventを2つ入れること(実験により1つではエラー起きやすい)、変数のグローバル宣言にきをつけること(2つのスレッドで同じ変数を呼ばない)ことくらいですかね。プロシージャーは同時に使っても今のところ問題ありません。 どうぞよろしくお願いします。
102 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:07:45 ] >【言語】 VBA >VBAにかかわらず どっちだよ
103 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:54:17 ] >マルチスレッド化によって、『比較的発生しやすい障害』 >101のような香具師が手を出してプロジェクトを台無しにする可能性が高まること。
104 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:55:09 ] 日本語でおk
105 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 11:36:22 ] > VBAってマルチスレッドできないともできるとも明記されていないんです。 M$に問い合わせろよ
106 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 12:51:30 ] 煽る人ばっかりで、本日はまともな人いないんですねー。>< 失礼しました!
107 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:41:29 ] >C等ならPUSH、POP等のメモリ操作がいちばん気をつかいそうなところですよね。 お前はいったい何を言っている?
108 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:47:28 ] >>101 お前の居場所はこっちだ pc11.2ch.net/test/read.cgi/tech/1178723829/
109 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:50:49 ] Cカップの子を触るのにおもいっきり触るのか それともソフトタッチでいくのかこれは結構気を使うって ことなんだな
110 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:58:17 ] PUSH,POPは気を使わない。それぞれ単純に排他制御するだけだ。 気を使うのは、例えば何かの目的のために一つの処理の中で pop,pushを続けて行おうとたらその間に別スレッドが実行されて 意図せず状態が変わってしまうようなことが発生すること。 排他制御していない箇所はどんなタイミングでどのスレッドが 実行されるかわからないことを肝に銘じておく必要がある。 『実験により1つではエラー起きやすい』 こんなこと言ってるようじゃ駄目だ。なぜ1つでエラーと なったのか論理的に分かるまで追え。まあDoEventを愛用 する奴にはマルチスレッドは剥いていない
111 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:15:46 ] VBAってCOMオブジェクト主体じゃないのか マルチスレッドの意味あんのかな
112 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:43:06 ] >101 VBA単独でスレッドを起こす手段がないからな。明記する必要もないだろ。 VBAだけじゃMutexとか同期用のオブジェクトをどうやって扱ったらいいものか、 スレッドを起こす手段がないので同期に関する記述もないからなぁ。 それにCOMだし意味がないかもな。
113 名前:デフォルトの名無しさん [2007/09/08(土) 01:29:00 ] 適当なスレが判断できないのでここで質問させて下さい。 msvcrt.dllやスタティックなVC6以降のmallocとfreeの動作についてですが、 _beginthreadexで作成した各スレッドで、あるスレッドがmallocしたメモリを 違うスレッドでfreeする事は合法でしょうか? 過去の自分の書いたコードで見つけてしまいました。 なんかやばそうな気はするんですが。
114 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:35:12 ] >>113 何を知りたいの?もうちょっと明確に話まとめろよ このインキン野郎が
115 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:51:13 ] >>113 スレッドが異なることは問題ない。 メモリ管理で問題になるのはモジュール(EXEやDLL)が異なる場合。 ただし、この場合でもすべてのモジュールのCランタイムを 動的リンク(msvcrXX.dllを使う)にしておけば、問題は発生しないはず。
116 名前:デフォルトの名無しさん [2007/09/08(土) 21:25:21 ] ありがとうございました。 一応きちんと動いてはいるみたいなので放置します。
117 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 23:20:00 ] マルチスレっ
118 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 03:22:50 ] 合法か違法かで言えば合法だろうし、(問題でてないのに)直すってのもアレだけど、 行儀わるいよな。
119 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 03:47:08 ] >>118 アプリ全体のログを採る処理で、printfみたいな書式文字列を mallocやreallocでメモリに貯めていって、ある程度溜まった段階で 清書してファイルに吐き出して、使った分をfreeしてくという仕組みなんですが、 CriticalSectionの排他で順番だけ決めてるだけで、どのスレッドが メモリ管理をする、というのを決めてないんです。 まあ、最初と最後の破棄とかはメインスレッドがするんですが。 試しにスレッド間通信したらパフォーマンスが悪かったので こんな仕様にしたような記憶があります。 どうしたらいいでしょうかね。
120 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 11:39:09 ] きちんと管理できてるんなら問題ないでしょ。 C++ならstd::stringとか使ってくれた方が楽そうだけど
121 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 15:29:38 ] マニアックにboost ropeで
122 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 07:56:13 ] boost? STLportじゃなくて?
123 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:00:27 ] XP/2000のスレッドで質問です。 親子関係にあるスレッドで、親をなるべくブロックさせずに、 毎秒数KB程度のデータを子に送信したいと考えています。 (子は1つで、子の応答はいくら遅れてもかまわない) クリティカルセクションでデータの排他をに試したら、 子供の処理が長引くだけ親がブロックされてしまうので、 別の方法を検討しています。 こういった場合、スレッド同士の同期オブジェクトを介さずに データをバッファに溜めておける名前付きパイプが良いかなと 思ったのですが、こういった用途に使えるでしょうか。
124 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:16:31 ] パイプの長さは必ず確保するという話ではなかった気がするなあ >クリティカルセクションでデータの排他をに試したら、 >子供の処理が長引くだけ親がブロックされてしまうので 通常、 バッファへの追加 バッファからの取り出し 以外は排他する必要はないと思うんだが、違うのか?
125 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:25:19 ] >>123 子スレッドが処理終わるまでロックさせっぱなしにしないで、 さっさと必要なデータをコピーしてクリティカルセクションから抜けたら?
126 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:38:07 ] >>123 子供2つにすればいいだろボケシネカス
127 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 00:55:31 ] 10ヶ月かかるし。
128 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 20:48:36 ] 処理が終わるまで待ってたらスレッドの意味が無い。
129 名前:デフォルトの名無しさん [2007/09/19(水) 20:55:43 ] 【OS】 Debian Etch Linux kernel 2.6.18 【言語】 C pthread 【実行環境】 GNU gdb 6.4.90-debian gdbでのマルチスレッドのデバッグ中、任意のスレッドでステップ実行をしていると とつぜんカレントスレッドが切り替わり、 ステップ実行していたスレッドの実行位置が失われる現象に遭遇します。 デバッグ対象のプログラムは、動作確認がとれているオープンソースのプログラムです。 原因、回避法等ご存知のかた、ご教示いただけないでしょうか
130 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:12:16 ] gccスレにも行っとけ
131 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 22:58:11 ] >>129 250万でサポートしてやるけどどうよ?
132 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:06:29 ] 250万の内訳を教えてくダサイ
133 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:24:38 ] サンドバック料:200万 治療代:50万
134 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:28:49 ] >>132 年間保守契約費 200万 登録費 30万 事務手数料 20万 だが?
135 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:17:41 ] ずいぶんと安いね
136 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 04:16:06 ] これからはsignalfdだな
137 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 14:05:07 ] ロックしたら負けかな、と思ってる
138 名前:デフォルトの名無しさん [2007/09/24(月) 18:56:19 ] erlangマンセー
139 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 12:41:04 ] malloc(), free()ってスレッドセーフなんですか?
140 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 15:01:14 ] お前が使っているライブラリのマニュアル嫁
141 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 18:07:16 ] >>140 man malloc ってやってもスレッドセーフに関する記述がないんです...
142 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 18:41:26 ] 使っているOSの名前、バージョンを言わないのは初心者気取りか?
143 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 20:23:28 ] 対応してる。大丈夫だ。
144 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 22:14:38 ] >>143 安心しました。ありがとうございます。
145 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 23:24:04 ] 藻前詐欺にあい易いタイプだろ
146 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 23:39:03 ] ワロタ
147 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:06:02 ] 昔おれ衝動買いの時によくやった 店員に騙されるパターン 信じてたのに・・・・
148 名前:デフォルトの名無しさん [2007/09/30(日) 01:20:45 ] マルチスレッドでcoutを使うと表示がぐちょぐちょになって醜いです。 どうしたらいいでしょうか?
149 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:21:34 ] C++の仕様。 printf使いなさい。
150 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:27:17 ] すみませんprintfでも同じです
151 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:31:42 ] coutという一つの資源を複数のスレッドで取り合うからそうなる。 排他機構を使ってひとつのスレッドが使っているときに他のスレッドが使うことが無いようにしろ。
152 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:33:10 ] 出力スレッドでも作って、そいつに全部押しつけろ。
153 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:08:32 ] pthreadつかってマルチスレッドのプログラム作ってるんだけど. なぜか特定のタイミングでピタッと動かなくなる(デッドロックというのか?) それ以降プログラムがうんともすんともいわなくなる. デバッグする際にみんなどういうことやってる?gdbは使い物にならないし...ltraceも使えない... やっぱりソースコードを目で追っていってるわけ?
154 名前:148 [2007/09/30(日) 10:48:06 ] >>151-152 そんな事したらめんどくさくないですか? もうちょっと簡単な方法でお願いします
155 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:56:45 ] >>154 諦めろ
156 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:58:21 ] ソースを追うっていうか、どんなケースが起こりえて、 すべてのケースの組み合わせに対応できているか検証する。 大体は、止まりそうな場所はわかるから、そこを調べて、 次に、ブロックするかもしれない操作を洗い出して調べる。 止まる場所は突き止めたけど、どうして止まってしまうかわからない場合は、 状態をログに出したりするかな。 デッドロックより、最適化とかOoOでの実行順序の入れ替わりとか、 可視性が関わるバグの方が、調べるの大変だと思う。
157 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 11:12:22 ] coutやprintfがMT-safeでも、 出力が崩れるのはどうにもならないと思うので、 出力処理全体を1セットとして、ちゃんと排他しないと駄目だろう。
158 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 12:22:06 ] >>148 スレッドごとに出力先を分ける。
159 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:23:05 ] >>154 マルチスレッドプログラミングが「面倒くさい」ものでないならば そもそもこんなスレは存在して無いだろうよ。
160 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:40:06 ] >>154 ぐちょぐちょにならないっていうことの意味をもっとはっきりしないとだめだね 一番綺麗なのは、スレッドAの表示がすべて終わってからスレッドBの表示をすることだが、それならシングルスレッドにするのが一番簡単 つまりマルチスレッドやめれば解決
161 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:43:19 ] >>154 ドトネトのSystem.Consoleクラスならマルチスレッドセーフ。w
162 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:50:16 ] >>161 素朴な疑問なんだが、そのマルチスレッドセーフとは出力が混ざらないことまで保障してくれるのかね。 # だとしたら、逆に激しく不便なんだが。
163 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:03:37 ] >>158 のは、言われてみれば当たり前なんだが、 簡単だし、間違いないな。 変数/オブジェクトの持ち回りとかが、複雑になってたら、 スレッドローカルな変数を使えばいいし。
164 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:04:48 ] メソッド一発分が安全に動くだけだろ。
165 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:07:48 ] >>162 Console.WriteLineはアトミックに実行されて出力は混ざらないね。 ReadLineは1つのスレッドが入力実行中は他はブロックされるかな? 混ざらないとどの辺りが激しく不便なのでしょうか?
166 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:09:34 ] >>164 それ以外に何を求めると?
167 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:12:41 ] 行単位でも混ざって欲しくなかったら>164では不十分だろ。 行単位で適宜出力して欲しかったら混ざらなかったら不便だろ。
168 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:15:25 ] まず、「混ざる」の定義からはじめろ。 バイト単位なのか、 マルチバイト、ワイドキャラクタ等の文字単位なのか、 出力ストリームのメソッド単位なのか、 複数の出力ストリーム書き込みをまとめた、プログラムの中で定めたオレ単位なのか。
169 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:19:52 ] 初心者なオレのためにライブラリ、クラスのスレッドセーフの 定義を騙ってください。
170 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:28:21 ] >>166 何も求めてねーよ。 >>162 に答えただけだ。
171 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:34:16 ] >>170 メソッド一発分が安全に動くだけ以外のことをされると マルチスレッドでは激しく使い辛いですな。。
172 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:35:19 ] >マルチスレッドでは激しく使い辛いですな。 わかんねー奴に俺が翻訳してやる。 せっかく並列に動くのに余計なロックするなや 別に使い方が面倒になるわけじゃないよ いじょ
173 名前:148 [2007/09/30(日) 18:12:10 ] もういいです。わたしが馬鹿でした もうあきらめます。
174 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:20:52 ] なんだ、学習意欲のないやつだな
175 名前:148 [2007/09/30(日) 19:21:43 ] すみませんが、本当にわかる方、回答をお願いします。
176 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 19:28:32 ] 残念だったね。