- 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】 【言語】 【実行環境】 【その他突起する事項】
- 384 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:00:55 ]
- >>382
なんでint *なの? 汎用ポインタならvoid *が判りやすくていいじゃん。 # それとも、qsort()も使ったことがない人?
- 385 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:01:29 ]
- C言語の型って何のためにあるかわかる?
- 386 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:06:28 ]
- 関係ないけどC99では整数⇔ポインタ変換する場合はintptr_tを使った方がよくて、
それやらないと最悪strict aliasingの最適化でバグっちゃうケースがあるらしい。
- 387 名前:368 [2008/01/14(月) 23:08:43 ]
- >>384
>汎用ポインタならvoid * 大抵、そうですね。 昔、voidに型は無い、という話だったけど、void型という型になっていて浦島 状態です。 >>385 話の流れから、メモリ確保の為。 intのサイズは小さく、他に大きなサイズの時困るって事でしょうけど。 今回は、pthread_create(&th , arg2 , arg3, (int *)2); のように、サイズが小さくても、不整合は出ないような... 出るのかな?
- 388 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:13:41 ]
- いや、Cにはvoid型はないけどvoid*型はあるの。
- 389 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:17:11 ]
- void型はあるよ。
void型へのキャストもできるし。
- 390 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:17:48 ]
- >>387
サイズ云々はかんけーねーだろ 8byteの汎用アドレス渡すことに 何一々屁理屈こねてるんだアスペル房?
- 391 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:20:22 ]
- >>368
あるよ
- 392 名前:368 [2008/01/14(月) 23:20:31 ]
- >>390
>385は何のため? >>389 void型って、出来てますよね?
- 393 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:20:42 ]
- >>387
考えがアセンブラだなぁ。 ひょっとして今時オブジェクト指向を理解できてない人?
- 394 名前:368 [2008/01/14(月) 23:22:59 ]
- >>393
確かに gcc -Sのコード見たほうがデバッグ早いです。 オブジェクト指向は、時々する程度です
- 395 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:23:51 ]
- >>392
厳密に型が決まってる言語だから その場合に曖昧さを表現するには C言語の場合、簡単な解決方法は void *で表現すること 理解できないみたいだし四ねw
- 396 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:27:08 ]
- void hoge(void) {
return (void)0; } 規格にも void type とかいう用語は出てくる。
- 397 名前:デフォルトの名無しさん [2008/01/14(月) 23:27:48 ]
- >>395
理解しますが >簡単な解決方法void *で表現 ならば、他に方法は有るのですか?無いのですか?
- 398 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:31:34 ]
- 値は同じでも意味が違うものってあるでしょ。
C言語でいうなら同じ0でも、数学の0と、ポインタのNULLでは意味が違う。 それらを区別するために型という概念がある。 で型があることでコンパイル時に型チェックが可能となって意味の混同が起こってないかを調べられるわけ。
- 399 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:35:53 ]
- 引数に int* ってあるなら、それは32bitの値へのアドレスを渡すということではなくて
intの意味を持ったものへのポインタを渡すって理解すべきなの。 だからそこへとある構造体へのポインタを渡すなんてのは設計も使い方も分裂症気味におかしいわけ。
- 400 名前:368 [2008/01/14(月) 23:43:00 ]
- >>398,399
なるへそ。分かりました。 けど、別の疑問が、**(ポインタのポインタ)で渡したら型の意味もないような
- 401 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:45:46 ]
- どうでもいいけど、(void *)2はともかく、(int *)2はきもい
- 402 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:51:41 ]
- *が何個付こうが話は同じ
- 403 名前:368 [2008/01/14(月) 23:59:01 ]
- 了解。
皆さんありがとうーーーーー。 関数作ってみようか考えていましたが、しなくて良いみたいですね
- 404 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:31:43 ]
- やけにスレが伸びてるなと思ったらC言語講習会かよ・・・
- 405 名前:デフォルトの名無しさん [2008/01/15(火) 00:34:54 ]
- じゃ、pthread_atfork関係でもする?
- 406 名前:デフォルトの名無しさん [2008/01/15(火) 00:37:40 ]
- pthread_yield()で頼む。
NPだけど。
- 407 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:44:56 ]
- なんで?
- 408 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:36:25 ]
- スレッドで thread1 thread2の2つを走らせている場合
正常狩猟、異常終了両方で2つのthread1 thread2とも同時に終了させて 再度、起動したいのですが、どのようにして終了させたら安全ですか? pthread_cancel(),ptrhread_join,pthread_exit
- 409 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 02:31:14 ]
- >>408
スレッドを抜ける
- 410 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 04:51:33 ]
- >>409
そりゃそうだ。 cancel-join exit-joinが良いのかな? どうしたら良いかな? mutexは無しです
- 411 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:27:19 ]
- thread10個起動して、全部待ちたいときはどうすればいいの?
- 412 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:33:00 ]
- forでjoin回せば。Win32なら64個までの限定だけどWaitForMultipleObjectsとかあるけど
- 413 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:37:22 ]
- >>411
pthread_barrier_wait()
- 414 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:02:03 ]
- あざーす。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:19:01 ]
- すみません
スレッドでがんがん動く関数がるけど、この関数は起動字にも動いて処理します。 起動字はスレッド起こしてないんだけどpthread_関係が入っている関数を使っていいの? 具体的にはpthread_atporkです
- 416 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:58:36 ]
- 誤時がおおおいな
- 417 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:38:20 ]
- あっとぽーくなんてマニアックな関数、何に使うんだか。
- 418 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 01:50:30 ]
- deadbeefと関連がありそうだな
なさそうでもあるな
- 419 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:47:59 ]
- >>413
411じゃないけど、pthread_barrier_wait() はlinuxでは無いようです。 どうようの効果を期待できる関数は何ですか?あるいは、その組み合わせは? 教えてちゃんですまそん
- 420 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:57:18 ]
- >>419
あんたの使ってるディストリビューションが古いだけ。 もっと新しいglibcを積んでるやつを使え。
- 421 名前:デフォルトの名無しさん [2008/01/19(土) 00:46:44 ]
- LinuxThreadsの頃からあったと思うんだがな。。。
何使ってんだ??
- 422 名前:デフォルトの名無しさん [2008/01/19(土) 00:48:06 ]
- >>419
ほんとにないなら、mutexと条件変数の組み合わせで実現できるけど、結構難しいよ。 NPTLのpthread_barrier_waitの実装を読んで、真似するのが良いと思う。
- 423 名前:419 mailto:sage [2008/01/19(土) 02:35:01 ]
- >>420,421
cg-linuxていうらしいです。manで無かったんです かえたらダメだと思います。多分。 kernel=2.4.17?みたいなことします。 pthread.hを見て本当にないか見てみます。 >>422 そんなドキュメントあるんですか、本当になかったら探します。
- 424 名前:デフォルトの名無しさん [2008/01/19(土) 06:58:09 ]
-
私が小学生の頃、 日本中でノストラダムスの予言が大流行していた。 「1999年の7月に人類は滅亡する!」 という例のお騒がせ終末予言である。 大人になって社会に出て働きだして、 あくせくと忙しく日々を過ごしながら、 1999年は、 ありふれた日常の中であっさりと過ぎていった。 人類は滅ばなかった。 これからここで、 1999年に起こるかもしれなかった人類の壊滅的破局を、 誰にも知られずにこっそりと回避させた人たちがいた... という設定で、 荒唐無稽なストーリーを描いてみたい。 無論、100%完全なフィクションである。 www5.diary.ne.jp/logdisp.cgi?user=532063&log=200705
- 425 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:09:05 ]
- >>423
www.google.co.jp/codesearch?hl=ja&lr=&q=glibc-2.5%2Fnptl%2Fsysdeps%2Fpthread%2Fpthread_barrier_wait.c とかのことね。
- 426 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 02:29:53 ]
- >>425
くーーー、64bitなんですーーー 探してみますーーーー こんなサービスもあっ短だメモメモ
- 427 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 05:25:11 ]
- bit数関係あんの?
- 428 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 14:35:26 ]
- cglinuxってキャリアグレード?
- 429 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:25:00 ]
- そうだろうね。カーネルバージョン見ると MontaVista っぽい。
だとするなら、サポートしてるかどうかはもんたに聞いた方が良いね。 というか、419が欲しい機能は本当にpthread_barrier_waitで合ってるんだよね? >>411 を素直に読むと >>412 で FA だと思うんだが。 (まあ419がちゃんとわかってて聞いてるなら余計なお世話だけど)
- 430 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:23:46 ]
- matrix * matrixをpthread_createとpthraed_joinだけで、
ぶん回してみたけど(quad core)普通にthread無しで やるほうがはるかに早かった。 pthread_createのコストが高いのかなあ? threadを最初に作っておいてpthraed_cond_wait待っておいてスレッドを使いまわす 方式で再実装してみる。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:55:51 ]
- スレッド数4にしてる?
- 432 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:25:48 ]
- している/いろいろやってみだ。
4,10,,12,16,32 32だと、たまーにtopでみていると2000%とかになっていた。 それでも、遅い。
- 433 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:27:54 ]
- ×みだ
○みた あと、スレッド数8が抜けていた。
- 434 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:28:15 ]
- コアが4個なんだからそれより多くしてもほとんどメリットはないだろ
- 435 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:31:44 ]
- プロセス生成に比べるとマシってだけで、
スレッドの作成(と終了)はそれなりにコスト高いよ。
- 436 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:36:38 ]
- 並列化効率とかアムダールの法則とかでググれ
- 437 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:34:00 ]
- DualCoreXeon*2で実験した限りでは、core辺り処理量は(殆ど)変わらなかったけどなぁ。
分割の仕方が悪いんで内科医?
- 438 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 06:20:13 ]
- >>436
そんなの、スレッド本の第一章に書いてあるだろ。
- 439 名前:デフォルトの名無しさん [2008/01/26(土) 13:54:13 ]
- Windowsで
4つのスレッドを開始させ、 一つのスレッドが終了次第、 ほかのスレッドも全て終了させる方法ってありますか?
- 440 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:02:01 ]
- >>439
そのように作ればそうなります。
- 441 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:07:17 ]
- >>440
すみません。 私の聞き方が曖昧でした。 手段を教えて下さい。
- 442 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:31:08 ]
- 終了すると終了させるは微妙だが大きな違い
- 443 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:37:11 ]
- >>439
4人の子供のうち、誰か一人でも死んだという通知が来たなら、他の三人に死亡要求を掛ければよろしいかと。 子供が死亡要求を聞き届けてくれない仕様ならば、殺すしかありませんが。 いずれにしても、APIレベルで実装したいならAPIスレ、.Netでやりたいなら.Netスレ、そうでないならVSスレなり 初心者スレなり適当にどうぞ。
- 444 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:41:02 ]
- WaitForMultipleObjectsで4つのスレッドを待てば、どれか一つのスレッドが
終了したかが判るから、あとは終了イベントたてるなり(スレッドが参照していることが条件だけど)、 TerminateThreadするなり(非推奨)、好きなようにやれば。
- 445 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:54:02 ]
- マルチスレッド使って、CPU負荷分担みたいなことってできる?
2つのまったく動作が同じスレッド作って、2つのCPUリソースに処理を振り分けるとか?
- 446 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 15:25:58 ]
- できるできないで言えば普通できるに決まっとろう。
- 447 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:19:18 ]
- なにか共通で使うリソースがあって、同時にそれを使えない場合は、
如何に競合を回避するか考えないと、相手のリソース解放を待つのとかで、 同時に動作できる時間が減っちゃう。 CPU1: *-*-* ***--- CPU2: -*-*- とか ---*** こんなのになったら意味無いし。
- 448 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 18:09:47 ]
- 無駄だけどセマフォしかないわ、全部持つか、一個なら諦めろw
- 449 名前:デフォルトの名無しさん [2008/01/26(土) 21:55:22 ]
- Windowsでは、有限バッファ問題(生産者消費者問題)はどう解決するのが良いでしょうか?
www.cs.is.noda.tus.ac.jp/~mune/oop/node16.html 生産者も消費者も単一プロセス内のスレッドで、生産者・消費者はそれぞれ複数いるという 状況です。バッファがfullまたはemptyのときは、pushまたはpopの処理がブロックしてかま いませんが、バッファ長は1や2ではなくもう少し大きくしたいと思っています。 UNIXだと、条件変数かセマフォを使えば簡単に実装できると思いますが、前者はWindowsには 無く、後者は単一プロセス内の同期として用いるのは効率が悪そうです。 Windowsは、VistaではなくXPを使っています。よろしくおねがいします。
- 450 名前:デフォルトの名無しさん [2008/01/26(土) 23:22:41 ]
- 何でもマルチスレッドにしたがるバカw
- 451 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:32:11 ]
- >>449
XPには条件変数は無いから。自分で作る。
- 452 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:24:29 ]
- 条件変数って何があれば自作できるんだっけ?
- 453 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:30:14 ]
- Mutex/CriticalSectionとEventと変数でいいんじゃねーの?
- 454 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:40:01 ]
- >>453
おそらくその組み合わせでは条件変数もどきは作れないと思うのだが・・。 でも、もし大丈夫だとされている実装とか、MS推奨の実装を知っていたら教えて。
- 455 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:00:10 ]
- できないと思う理由を書いてくれ。
なんか、条件変数に過大な期待をしてるみたいだから。
- 456 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:10:01 ]
- broadcast考えなきゃ、Auto Reset Eventを
SignalObjectAndWaitで待てば済む話じゃね?
- 457 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:23:45 ]
- >>455
Mutexの開放とEvent待ちをアトミックに行うことができないから。 たとえばここ docs.sun.com/app/docs/doc/819-0390/6n2qp46ef?a=view の一番下にあるようなコードの、pthread_mutexをCriticalSectionに置き換えて、 pthread_condを自動リセットのEventに置き換えたとすると、 バッファが空の状態で、スレッドAがデータを取り出そうとする Event待ちの寸前でコンテキストスイッチ まだバッファが空の状態で、スレッドBがデータを取り出そうとする Event待ちの寸前でコンテキストスイッチ スレッドCがデータを投入 スレッドCがSetEvent スレッドCが再度データを投入 スレッドCがSetEvent スレッドAがイベント待ちに入り、すぐ戻る スレッドAがデータ取り出し完了 スレッドBがイベント待ちに入る。データがあるのにイベント待ちから戻れない となる恐れがない? (CSのEnter/Leaveは省きました) www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_cond_destroy.3.html の、 > 条件変数はいつでも mutex と結びつけられていなければならない。これは、あるスレッドが条件変数を > 待とうとしている時に、他のスレッドが、先のスレッドが実際に条件変数に対して待機するその直前に > 条件を送信する、という競合条件を避けるためである。 を参考にしました。
- 458 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:30:15 ]
- というわけで、producer-consumerのうまいコード例があればお願いします。
- 459 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:31:34 ]
- 投入データの個数をセマフォで管理しとけばいいんじゃないかな
データ投入後→セマフォを1上げる データ取り出し前→セマフォを1下げる(データがない=セマフォが0の場合は投入される=1以上になるまでブロック)
- 460 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:35:29 ]
- >Mutexの開放とEvent待ちをアトミックに行うことができないから。
はいはい。SignalObjectAndWait, SignalObjectAndWait。
- 461 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:39:35 ]
- >>460
んー、この用途に使えるのか。サンクス。調べてみます。 >>459 最悪それでいこうとおもってます。けど460のでいけるならそれがベター。
- 462 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:40:44 ]
- というか、Producer-Consumerなら、スレッドプールつかって
あとは知らぬの半兵衛を決め込めばいいような気がしてきたぞ。 Producer() { { CriticalSectionLock csl(cs); return if list.full? list.push( somethings ) QueueUserWorkItem( Consumer ); } } Consumer(){ { CriticalSectionLock csl(cs); workitem = pop(); QueueUserWorkItem(Producer); } SomeWork; }
- 463 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:41:59 ]
- >>462
そういうのもあるんですか。そっちも調べてみます。 ありがと。
- 464 名前:デフォルトの名無しさん [2008/01/27(日) 01:57:33 ]
- >>456
ブロードキャストしたい場合は
- 465 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 02:08:57 ]
- その場合は、根本から考え直しだよね。
APRみたいに、Manual Rese Eventを待つたびに、待ちスレッド変数をインクリメントして 起こされるとデクリメント。自分が最後に起こされたスレッドかどうかを判断して、 ResetEvent発行するとかさ。
- 466 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 02:11:42 ]
- manual resetにするわけか。めんどくさいね。
- 467 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 14:51:01 ]
- 結論:Windowsはクソ
- 468 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:00:27 ]
- 条件変数を作るとして、それに使うWindowsの同期オブジェクトはどれが軽くてお勧めか?
- 469 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:18:26 ]
- CriticalSectionにSignalObjectAndWaitできるの?
- 470 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:18:47 ]
- >>468
Vistaを使う
- 471 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:59:39 ]
- >>435
thread pool化した。8thread上げといてそれを、 pthread_cond_wait/signal/broadcast pthreaf_mutex_lock/unlock で、ぶん回した。 non thread時の倍ほどがのスピードが、漸くでた。 単純にctreate/joinだけだと、メチャメチャコストが高いのですね。 このときは、non thraed時の8倍ほど時間がかかった。
- 472 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:19:52 ]
- >>468-469
CSが使えないんだとしたらエラく遅くなるよな。 実際のところどうなのか教えてエロい人。
- 473 名前:472 mailto:sage [2008/01/27(日) 18:24:54 ]
- www.cs.wustl.edu/~schmidt/win32-cv-1.html の3章に実装例があった。
どれも大変な事になっているな。たぶん、pthread_cond_broadcast()を実現しようとしているからだと思うが。
- 474 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:08:28 ]
- VS2005、C++でWin32ウィンドウプログラムを作成しています。
キューの中身が空の間、スレッドを待機させたいのですが、while(que.empty()) { Sleep(0); } とすると、CPUはぶんまわされるわ、スレッド終了フラグも受け取れないわで困っています。 キューにデータが入った瞬間にスレッドが回りはじめ、かつ終了フラグも受け取るためにはどうすればよいのでしょうか? 初歩的な質問ですみませんがよろしくお願いします。
- 475 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:29:07 ]
- 釣り?
- 476 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:12:47 ]
- いえ、釣りではないのですが…
もう少し調べてみます。 それでも分からなければ初心者スレに行きます。 スレ汚し失礼しました
- 477 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:51:27 ]
- とりあえず、セマフォを使ってみよう。
- 478 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:54:49 ]
- というか、今までの話題がまさにそのProducer/Consumerパターンについてなわけだが
- 479 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:08:21 ]
- >>449-
.NETならこれ msdn.microsoft.com/msdnmag/issues/07/05/CLRInsideOut/default.aspx?loc=jp Vistaならこの記事がおすすめ。 msdn.microsoft.com/msdnmag/issues/07/06/Concurrency/default.aspx?loc=jp
- 480 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:09:22 ]
- >>479
C++でXPなんです・・
- 481 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:08:54 ]
- つうか、セマフォ使えや、カス
- 482 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:20:54 ]
- メータードセクションだろ普通
- 483 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:21:26 ]
- >>481
誰にいってんの?
- 484 名前:デフォルトの名無しさん [2008/01/28(月) 01:23:40 ]
- >>482
へぇ。そんなのあるんだ。プロセス間でも使えて、一定回数はカーネルに落ちないでspin?
|

|