- 1 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 00:13:53 ]
- マルチスレッドプログラミングについて語るスレ。
OS・言語・環境は問わないが、それゆえ明記すべし。 その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/
- 61 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 01:07:32 ]
- この場合は
・ネットへのリクエスト ・得られた情報の分析 が並行処理対象になると思うんだが、 前者と後者ではやりかたがぜんぜん違うよなあ
- 62 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 01:45:14 ]
- あまりのスケールのでかさに、別件でスレッドを使おうか迷っているのが
バカらしくなってきた
- 63 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 02:08:29 ]
- うちだと_beginthread()しまくるだけの奴で
スレッド2000個ちょっとまで作れるな
- 64 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 14:14:52 ]
- ふと>51の質問みて思ったんですが、スレッドを分ける(並列にする)
と処理速度って上がるんでしょうか。 処理の内容によるでしょうけど、単純にCPU性能に依存するような 処理で、並列に処理可能な場合とか。 まあ普通そういう目的でマルチスレッドを利用したりするわけじゃないですが。
- 65 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 14:15:53 ]
- ふと>51の質問みて思ったんですが、スレッドを分ける(並列にする)
と処理速度って上がるんでしょうか。 処理の内容によるでしょうけど、単純にCPU性能に依存するような 処理で、直列に処理してたけど並列に処理可能な場合とか。 まあ普通そういう目的でマルチスレッドを利用したりするわけじゃないですが。
- 66 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 14:16:56 ]
- 連書きスマソ;
- 67 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 15:08:49 ]
- >>64
動作中スレッド数よりもCPUコア数が多いなら、スレッドを並列化することで高速化する。 仮に1Core1CPUで単純に並列化した場合、全く高速化しないかオーバーヘッドの分遅くなる。 まぁ、CPUコア数の数倍以上のスレッドを起こすと資源の競合が発生するから速くなる筈がない罠。
- 68 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 16:02:59 ]
- >>67
CPUに限らず、資源が競合する処理なら、確かにそうなるな。 逆に言えば資源を競合しないI/Oウェイトなどが多い処理なら、 CPU数より極端に多いスレッド数でも処理は早くなるといえる。 たとえば今回のようなhtmlファイルのダウンロードの場合、 相手方のサーバーのレスポンス待ちが発生するので、複数のスレッドで別々の htmlファイルを同時に取得しにいったほうがいい。 ただ、やりすぎると今度はスレッド切り替えとか、メモリスワップとか、回線速度の限界とかで オーバーヘッドが大きくなるので遅くなる。
- 69 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 16:05:55 ]
- tcpip.sysの同時接続制限とか関係ないのかな?
- 70 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 18:03:54 ]
- >67 68
サンクス! 実はウチの作ってるアプリで性能を指摘されてるトコがあって、 並列化ってどうなんだろうと思ったんで、参考になりました。 とりあえずCPU依存の処理は効果薄って事ですね。
- 71 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 19:12:42 ]
- >>70
並列化を考える前に、やることは色々あると思うよ。 CPUに、P4以上の制限つけていいならiccでコンパイルしてみるとか。 iccがあれば、並列化も簡単に試せるしね。 まぁ、詳細はスレ違いになるんで省略するけど。
- 72 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 01:58:51 ]
- CPU依存の処理で高速化を考えるなら、並列化ではなくアルゴリズムの最適化を考えたほうがいい。
スパコンでもない限り、今のパソコンはせいぜい4コア。 並列処理させても、4倍未満にしかならない。 だけどうまくアルゴリズムを工夫すれば、数倍から数百倍の速度が稼げる可能性がある。
- 73 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 02:07:56 ]
- DELLの6万円パソコン買ったほうがよくね?
10台でも60万。さてアナタの2人月より安い?高い?
- 74 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 02:08:38 ]
- 無限に並列化可能な処理と仮定するなら、クラスタリングもありかと。
所謂グリッドコンピューティング。
- 75 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 02:12:36 ]
- あと2倍になればいいだけなのにチューニングだとかほざいて
無駄にコードを複雑にしようとしていたボケがいたので サーバを3倍に増やして終わりにしました。
- 76 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 02:53:01 ]
- ま、そこら辺は完全にケースバイケースだよね。お仕事でやってるならコスト次第。
このスレ的には並列度を上げる方向に収束すると美しいんだけど。
- 77 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 03:05:17 ]
- そんな勝手に方向を決められても。
- 78 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 12:57:34 ]
- >>71
>iccがあれば、並列化も簡単に試せるしね。 体感で速くなったためしがない。 いったいどういう場合に効果があるのか…。 人間が見ればすぐ分かるが、コンパイラの並列可能判定って どの程度のものなんだろう。
- 79 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 12:58:54 ]
- ↑もちろん手動で並列化したら高速化できる状況での話ね。
- 80 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 13:11:18 ]
- >>78
勿論、最低限-parallelは指定しているとして、単純なループなら並列化してくれる可能性はあるよ。 尤も、OpenMPを手軽に試せるという積もりで書いたんだけど。
- 81 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 20:10:54 ]
- Sunコンパイラ最強伝説
- 82 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 20:35:28 ]
- 最近、コンパイラの最適化性能比較ってあんま情報ないな。
- 83 名前:デフォルトの名無しさん [2006/12/03(日) 21:51:02 ]
- すいません、マルチスレッドですか?
- 84 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 22:42:46 ]
- はい、マルチスレッドです。
- 85 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 23:28:53 ]
- あなたを、マルチスレッドです。
- 86 名前:デフォルトの名無しさん [2006/12/06(水) 23:09:42 ]
- 今日は徹夜でpthreadを勉強します。
- 87 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 01:09:39 ]
- こんやは徹夜で、マルチスレッドです。
- 88 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 11:08:50 ]
- それはいいマルチスレッドですね。
- 89 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 22:25:54 ]
- 俺はみんながマルチスレッドしたあとでいいよ
- 90 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 22:29:26 ]
- みんないっしょでこそマルチスレッドです
- 91 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 23:01:07 ]
- 俺ちょっと疲れたからみんな先にいってくれ
- 92 名前:デフォルトの名無しさん [2006/12/08(金) 03:40:09 ]
- 急激にスレの質が落ちて参りました
- 93 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 14:50:27 ]
- みんなでマルチコスレッドしねぇ?
- 94 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 21:05:24 ]
- JavaScriptの分際でマルチスレッドしてやがる事に最近気付いた。
仕組みどうなってんのよ?
- 95 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 21:57:49 ]
- Javascriptなら中身見れるでしょーが
- 96 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 22:03:46 ]
- ソースの問題じゃなくてCPUがどう処理をこなしているか知りたいんだよな
- 97 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 00:36:36 ]
- 並行動作はせんと思うが
- 98 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 00:59:15 ]
- CPU?
- 99 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 01:01:50 ]
- onBlurとonClickで並列処理するよ。
- 100 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 01:02:26 ]
- だめだこりゃ
- 101 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 01:14:01 ]
- <script>
function Test(){ while(1){} } </script> ... <span onclick="Test()">Hello World!</span> でブラウザ死ぬけど?
- 102 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 01:18:19 ]
- ?
- 103 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 01:28:07 ]
- どのブラウザで?
つかブラウザネタをここでやるのか・・・ヤだなあ
- 104 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 04:50:27 ]
- ここはやっぱり伝家の宝刀 volatileネタを持ち出して本来のスレの荒れ方に戻そうよ。
- 105 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 10:38:50 ]
- Intel C++ Compiler for LinuxでOpenMPを使った並列化をやっているのですが、Intel Thread ProfilerにはLinux版が存在しないので、
暗黙的/明示的なバリア, ループの分割, critical構文等のオーバーヘッドや負荷の不均衡が検出出来ず、いまいちパフォーマンスが伸び悩んでおります。 このような問題を解決できるLinux用のツールは存在するのでしょうか? それともWindowsに移行するという選択肢しかないのでしょうか? なんだかレベルの低い質問で慙愧に堪えないのですが、もし誘導や解答をいただければ嬉しいです。 Intel Thread Profiler www.intel.com/cd/software/products/ijkk/jpn/threading/310854.htm
- 106 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 18:47:00 ]
- 一昔前だったらまともなスレッドプログラミングしたけりゃSolaris使え、で
片付けられてたような気がするけど私も興味あるので識者の降臨を待つ。 Valgrind(Helgrinid)の他にLinuxで実用に耐えるツールはあるのかな、と。
- 107 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 19:06:34 ]
- とりあえず脳味噌ぶら〜んから適当に検索。
ttp://www.nbrains.net/php/pukiwiki/index.php?link%BD%B8%2F%B3%AB%C8%AF%B4%C4%B6%AD%B7%CF#Debugger ttp://www.nbrains.net/php/pukiwiki/index.php?link%BD%B8%2F%B3%AB%C8%AF%CA%E4%BD%F5%A5%C4%A1%BC%A5%EB%B7%CF#Profiler
- 108 名前:105 mailto:sage [2006/12/11(月) 22:40:37 ]
- >>106-107
御解答有難う御座います。 わざわざ検索していただいたのに申し訳ないのですが、ちょっとその中には無いようですorz 凹んでいるだけでは何にもならないので、とりあえず"OpenMP"でググって片っ端から有望そうな所を覗いてみました。 結果、Omni OpenMP Compilerにtlogviewなるツールがあることがわかりました。 phase.hpcc.jp/Omni/openmp-tutorial/sld049.htm これを使えば、「iccでOpenMPを使った限界までのパフォーマンスチューニング」は難しそうですが、 「自分のコードの駄目なところ(計算粒度、ロードバランス等)を効率的に見つける」ことはできそうな感じです。 これを使って駄目だったらWinへの移行も検討してみようと思います。
- 109 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 22:42:55 ]
- SolarisがN:Mスレッドモデルをやめたのは効率が悪かったから?
- 110 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 23:45:55 ]
- アプリが1:1モデルを前提に作られる(チューンされる)ようになったから。
アプリといってもぶっちゃけoracleだが。 SolarisのためだけにN:M用チューンするのは時間の無駄だからね。 これを効率というならば効率だね。
- 111 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 09:58:49 ]
- I/.O主体の仕事は前提とかチューンってこととは関係なく、
1:1の方が効率がいい場合が多いでしょ。 CPUを明け渡すのがカーネル内であることが多いから。 だからエンタープライズが主戦場のSolarisでは当然のことかと。
- 112 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 10:23:41 ]
- OSが1:1ばかりになったというのもあるよ
- 113 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 01:18:13 ]
- そういうことは関係ない。
ちゃんと選んでやっている。
- 114 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 01:28:43 ]
- M:Nはシグナルの動きが1:1のときと全く同じにはならない。
両モードでのデバッグや検証コストを掛けられない。 もう一つは>>112のとおり。 OS屋のオナニーで仕様が決まる時代は終わった。
- 115 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 22:55:26 ]
- マルチスレッドのデバッグではまっています
(私が作ったんじゃないのですが) beginthreadが50個、EnterCriticaSectionが40個くらい、 スレッド最大200個くらいが動くとんでもないシステムです。 (もちろん満足に動いてないです) とりあえず、下記の方針でソースをチェックしようと思いますが、 他にもありますでしょうか? 1 InitializeCriticalSection()以前の行に、_beginthreadを呼び出す関数に入ってないか 2 スタティック変数、グローバル変数にEnterCriticalSecitonなしで書き込みを 行ってないか 3 newで作ったオブジェクトのポインタを複数のスレッドで参照してないか
- 116 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 23:13:58 ]
- >>115
問題を正しく特定できてるのか?
- 117 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 00:10:24 ]
- >>116
とにかくアクセス違反で落ちたり、 const変数が書き換わったりするみたいです もちろんマルチスレッドが原因かは特定できないのですが、 (ただ、ソースを見ると明らかにマルチスレッドを扱いきれてないです) 今、メモリ周りとかいろんな方面から数人で見ています。 もちろんデバッガ使ったりログ吐いたりはしています。
- 118 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 01:17:19 ]
- >>115
あと、EnterCriticalSectionへの再帰がないか。 同一スレッドだと、EnterCriticalSectionの挙動が変わるから注意。
- 119 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 03:03:16 ]
- どれくらいのスパゲッティ度かにもよるけども
仮想的なdbを用意して、データへのアクセスは必ずdb経由にするのも手だぞ。 (ポインタは渡さない、必ず生データのやり取りにする) 少なくとも知らない間に書き換わることはなくなる。 パフォーマンスは落ちるけどな。
- 120 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 09:02:59 ]
- >>118
なるほど、それは知りませんでした。ありがトン!!!!! >>119 うーん、なるほど。それも覚えておきます。ありがトン!!! とりあえず、ある程度安定してきたら、 再設計など検討するらしいです。
- 121 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 12:29:32 ]
- winapiでいうところのCrateEvent(), WatiForSingleObject(), SetEvent(), ResetEvent()
に該当する関数ってPOSIXでいうとどんなものになるんでしょうか? mutexは双方にあって別にいいんですが、待機オブジェクトがなくて困っています。
- 122 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 13:24:29 ]
- >>121 condition
- 123 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 21:52:54 ]
- 新年明けましておめでとうございます。
本年も、マルチスレッドプログラミング相談室 その5にご健勝あれ。
- 124 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 21:53:22 ]
- 本年の相談は終了いたしました。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 23:09:40 ]
- >>123
うむ御旗楯無もご照覧あれ
- 126 名前:デフォルトの名無しさん [2007/01/08(月) 22:40:26 ]
- 実験用にものすごく単純なマルチスレッドの http サーバを組んでみたのだけど、
コードだけ見るとロックするようなコードじゃないのに、長時間ストップしたまま になることがある。(いちおう、しばらく待つと再開する) listen() 状態のソケット作って、accept() したら pthread_create() してループ。 子スレッドのほうでは GET (path) HTTP/1.1 を待って、そのファイルを読んで返すだけ。 という単純なやつなのだけど、毎秒100リクエスト以上くらい httperf で送ってやると、 必要以上に処理がストップする。 (netstat -a すると一つも ESTABLISHED になっていない状態で数秒間とまっている) カーネルは NUMA を無効にした以外は特にいじっていない Linux 2.6.15.7/x86_64 スレッドとネットワークをがんがんいじっている人には自明な問題っぽいけど、 どの辺に原因があって、どういじれば、せめて無駄なストップをしなくなるのでしょうか。
- 127 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 11:26:21 ]
- >>126
親スレッドでpthread_joinなり、pthread_detachしてる? してないと、終了コード保持のため、子スレッドが終了せず、プロセスのスレッド数限界に 引っかかるかもしれん。
- 128 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 17:27:41 ]
- いちいちaccept毎にthreadを作成・破棄というのが良くない予感
- 129 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 19:18:57 ]
- >>126
子スレッドはちゃんjとソケットから全部読んでから closeするか、shutdown するかしてますか?
- 130 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 21:36:43 ]
- FreeBSDでコンパイル&実行するとそういう問題は起きない
- 131 名前:デフォルトの名無しさん [2007/01/16(火) 22:08:14 ]
- _endthreadでスレッド終了すると、デストラクタが走りません。
無理やり{}で囲んでデストラクタを走らせてますが、 標準的な方法ってありますか?
- 132 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:17:40 ]
- _beginthreadは使わない
_endthreadexは呼ばない
- 133 名前:デフォルトの名無しさん [2007/01/16(火) 22:29:22 ]
- >>132
_beginthreadexを使い、スレッド終了時に_endthreadexを呼ばないで単にreturnするだけということでしょうか??
- 134 名前:126 [2007/01/16(火) 23:37:42 ]
- ISP が割り当てるアドレスの周辺が 2ch にブロックされて書き込めなかった…。
スレッドとは関係なく、プロセス (もしくはある listen 状態のソケット) あたりの同時接続数が一定値を超えると何かあるのかも、とか推測中。 >>127 pthread_detach() してますね。 >>128 待機スレッドを用意しておくとかすると改善するのかな。 >>129 あ、読み残しがある可能性はあるかも。 けど、そういう原因ならリクエスト頻度を下げても同様の問題が起こり そうなものだが、 50リクエスト/秒くらいにすると起こらなくなる。 >>130 ソケット一般の問題じゃなくて Linux 特有の問題か…。
- 135 名前:126 [2007/01/16(火) 23:39:44 ]
- あ、とりあえず接続数を減らして、一接続あたりの転送量を増やすことで
目的には事足りるので、とりあえずそのようにしてやっている。 なぜストップするのか、に対する興味はあるのでまだ調べているけど。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 18:05:57 ]
- tcp_fin_timeout の話かなぁ
再利用できるポートが足りなくなって、待ちになってるとか
- 137 名前:126 [2007/01/17(水) 22:48:11 ]
- >>136
あ、それビンゴかも。 Apache に細工して、一度ソケットを (勝手な手順で) 作り直してアクセスすると、 同様の停止現象が起こった調査結果が手元にある。 ソケットに何かの値を設定すると停止現象を回避できるのかなあ (Apache は標準でそれをやっているけど、自分の勝手な手順ではやっていないのが原因かなあ) と想像していた。 setsockopt() で *ソケットごとに* この tcp_fin_timeout を 設定できるらしいので、この値がそれかもしれない。 これから Apache のソースを読んでみるつもり。 thanks.
- 138 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 23:11:05 ]
- >>134
>あ、読み残しがある可能性はあるかも。 ソケットは、両端で正しく ・全部読む (read で 0 が戻るまで) ・shutdown する のどちらかをしないと、close しても FIN_WAIT_2 だか何だか長めに待たされるステートに なっちゃっうんじゃ無かったかなあ。netstat してみれば即わかるけど。 ttp://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/debugging-tcp.html の mini FAQ の 5 を参照。
- 139 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 12:09:34 ]
- スレッドがシグナル状態になったあとに新たにスレッドを生成したいのですが、
そのスレッドのハンドルはクローズした方が良いのでしょうか? シグナル状態になったらスレッドのスタックは解除されるようですが。 上書きしてCreateThreadをしたらメモリリークしたりしますか? Win32APIです。
- 140 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 12:36:33 ]
- クローズした方が良い
- 141 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 23:23:03 ]
- ハンドルってただのポインタだから、
上書きしてもポインタ先が変わるだけ リソースは残ったままだとおもう
- 142 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 23:30:08 ]
- スレッドが終了してシグナル状態になったんであれば、
スタックとかコンテキストは解放されると思うけど ハンドルは残ったままじゃないか?戻り値を受け取るためにハンドルが必要だし。 といっても、ハンドルごとき残ったままでもたいしたことは無い。 (少々のリソース漏れはたいしたことないなんて言ってる奴のコードは信用ならんけど)
- 143 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 01:01:12 ]
- 試してみた。
#include <stdio.h> #include <windows.h> static DWORD WINAPI func(LPVOID p) { printf("thread %d\n", (int)p); return 0; } int main() { int i; for(i = 0; ; i++) { if (::CreateThread(0, 0, func, (LPVOID)i, 0, 0) == 0) break; } ::getchar(); printf("i = %d error code %u\n", i, ::GetLastError()); ::getchar(); } VS2005のデバッガ上だと2000超えたあたりでERROR_NOT_ENOUGH_MEMORYで止まる。 デバッガ外でやってみたら10万超えても終わらず、 なぜかipoint32.exeにアプリケーションエラーが出たりして怖くなったのでやめた。
- 144 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 13:15:48 ]
- メモリリークか 何もかも(ry
- 145 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 15:01:28 ]
- func のスレッド優先度、上げといた方がいいのでは?
- 146 名前:143 mailto:sage [2007/01/22(月) 08:17:30 ]
- あーそっか。あくまでハンドルのみのテストだったらちゃんとWaitForSingleObjectで待たなきゃいかんわな。
しかしWaitForSingleObjectしたのにわざわざCloseHandleしないでおく理由って考えにくいが。
- 147 名前: ◆0uxK91AxII mailto:sage [2007/01/22(月) 19:48:12 ]
- CreateThreadで走らせたthreadでは、CRTのfunctionを呼ぶべきではない。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 20:37:55 ]
- メモリーリーク?
- 149 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:11:40 ]
- 再入?
- 150 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:46:25 ]
- ttp://d.hatena.ne.jp/NyaRuRu/20070113/
こんな話もあった。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:22:25 ]
- とりあえずCRTは動的リンクしておけと
- 152 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:38:46 ]
- 2つプロセスで共有メモリのデータを共有する
サンプルってどこにあるのですか?pthread Linuxのやつを探しています。
- 153 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 09:49:27 ]
- スレッド関係ないから。APUE買え。
- 154 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 10:21:08 ]
- VS2005って標準でOpenMP使えたんだな
- 155 名前:デフォルトの名無しさん [2007/02/18(日) 16:38:41 ]
- ここで俺がひとまずここまでのレスをまとめる。
マルチスレッドは ム ズ カ ス ィ
- 156 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 20:05:23 ]
- >>152
だまってmmapすればいいんでないの?
- 157 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 21:12:05 ]
- >>155
お前にこの言葉を授けよう 「糞スレ立てるな」
- 158 名前:デフォルトの名無しさん [2007/02/20(火) 23:27:34 ]
- ファイアーモックス!
- 159 名前:デフォルトの名無しさん [2007/02/24(土) 10:27:57 ]
- 質問なんですがマルチスレッドでは同じ変数のアドレスの場所を
if文等で見に行くだけならぶつかることはないですか?
- 160 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 10:34:52 ]
- 読むだけなら問題ないと思。
最適化には気をつける必要があるが。
- 161 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 10:40:11 ]
- FAQだな。
読むだけなら排他不要。 ただしvolatileを忘れずに。 つーかvolatile最強。
|

|