マルチスレッドプログラミングについて語るスレ
■前スレ
マルチスレッドプログラミング相談室 その8
http://toro.2ch.net/test/read.cgi/tech/1253521167/
■過去スレ
その1 ttp://pc3.2ch.net/tech/kako/997/997345868.html
その2 ttp://pc5.2ch.net/test/read.cgi/tech/1037636153/
その3 ttp://pc8.2ch.net/test/read.cgi/tech/1098268137/
その4 ttp://pc8.2ch.net/test/read.cgi/tech/1130984585/
その5 ttp://pc11.2ch.net/test/read.cgi/tech/1157814833/
その6 ttp://pc11.2ch.net/test/read.cgi/tech/1187008532/
その7 ttp://pc12.2ch.net/test/read.cgi/tech/1215253576/
OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ
【OS】
【言語】
【実行環境】
【その他特記する事項】
探検
マルチスレッドプログラミング相談室 その9
2012/06/15(金) 01:31:57.88
248デフォルトの名無しさん
2014/02/28(金) 04:10:21.51 >>247
まずプロセスとスレッドの違いを理解してから
まずプロセスとスレッドの違いを理解してから
249デフォルトの名無しさん
2014/02/28(金) 06:26:56.06 まずグリーンプロセスとグリーンスレッドの違いを説明してほしい。
250デフォルトの名無しさん
2014/02/28(金) 22:47:18.43 グリーンスライムよりは手強そうなイメージ
251デフォルトの名無しさん
2014/03/01(土) 06:43:57.25 グリーンプロセス()
252デフォルトの名無しさん
2014/03/01(土) 13:24:07.27 このスレはカーネルレベルでの実装オンリーのスレになりました、ってことでFAね。
あるいは「カーネル型」のw
あるいは「カーネル型」のw
253デフォルトの名無しさん
2014/03/01(土) 13:27:09.68 まだいるのかグリーンスレッド君
254デフォルトの名無しさん
2014/03/01(土) 14:11:27.38 まだいるのかカーネル至上主義者君
255デフォルトの名無しさん
2014/03/01(土) 14:14:20.18 v-sync割り込みでマルチタスクだお〜
DOS至上主義者が通りますよ〜
DOS至上主義者が通りますよ〜
256デフォルトの名無しさん
2014/03/01(土) 19:50:36.19 [要出典]
257デフォルトの名無しさん
2014/03/01(土) 21:16:37.40 >>255
マウス用割り込みの方が良い。
マウス用割り込みの方が良い。
258デフォルトの名無しさん
2014/03/02(日) 21:38:31.73 マウスの付いてるパソコンはカッコ悪い
259デフォルトの名無しさん
2014/03/02(日) 21:41:29.98 わーるかったな
260デフォルトの名無しさん
2014/03/06(木) 00:31:59.51 マルチスレッドって使えるところが限られてる
261デフォルトの名無しさん
2014/03/08(土) 13:27:50.88 これからマルチスレッドの勉強をしようと思うんだけど、
参考になるサイトとかコードとかを教えて欲しい。
特にワーカスレッドを複数立て、たくさんのデータブロックを順に渡して処理させるようなサンプルとか。
ネットを検索しても、スレッドが延々と動きつづけるか、処理が終われば使い捨てるものばかりで、
処理の終わったワーカスレッドに次のデータを渡して連続して処理させるものが見つからない。
また、可変長の演算結果を親スレッドに返す方法についても、どうすればいいのやら。
1個の結果データは固定長だけど出てくる個数が可変なので、固定長の電文を複数投げるようなイメージでも可。
動作環境はWin7-x64で、VC++を使いマルチコアCPUのコア数分ワーカスレッドを立てようと思う。
うちのは6コアなので、単純計算で6倍弱には高速化できると思う。
処理内容の原理試作としてシングルスレッドのDOSアプリとして組んで、鍵値に5を与えて動かしてみた結果、
データブロック数は320万個余り、データブロック1個あたりの演算結果はゼロ〜100KBと幅があるw
そして総処理時間の見込みは60〜150時間(まだ終わってない)。
鍵値を6にするとブロック数も処理時間も莫大に跳ね上がるから、
たぶん1台のPC内で完結させようとしても終わらない。
参考になるサイトとかコードとかを教えて欲しい。
特にワーカスレッドを複数立て、たくさんのデータブロックを順に渡して処理させるようなサンプルとか。
ネットを検索しても、スレッドが延々と動きつづけるか、処理が終われば使い捨てるものばかりで、
処理の終わったワーカスレッドに次のデータを渡して連続して処理させるものが見つからない。
また、可変長の演算結果を親スレッドに返す方法についても、どうすればいいのやら。
1個の結果データは固定長だけど出てくる個数が可変なので、固定長の電文を複数投げるようなイメージでも可。
動作環境はWin7-x64で、VC++を使いマルチコアCPUのコア数分ワーカスレッドを立てようと思う。
うちのは6コアなので、単純計算で6倍弱には高速化できると思う。
処理内容の原理試作としてシングルスレッドのDOSアプリとして組んで、鍵値に5を与えて動かしてみた結果、
データブロック数は320万個余り、データブロック1個あたりの演算結果はゼロ〜100KBと幅があるw
そして総処理時間の見込みは60〜150時間(まだ終わってない)。
鍵値を6にするとブロック数も処理時間も莫大に跳ね上がるから、
たぶん1台のPC内で完結させようとしても終わらない。
263デフォルトの名無しさん
2014/03/08(土) 15:49:40.12 HotspotVMは?
と無茶振りしてみる
と無茶振りしてみる
264デフォルトの名無しさん
2014/03/08(土) 15:57:35.44 VCならOpenCLかC++AMP使えば良いんじゃね
CPUとGPUで切り替えも出来るし
CPUだけならPPLでも
CPUとGPUで切り替えも出来るし
CPUだけならPPLでも
265デフォルトの名無しさん
2014/03/08(土) 16:20:54.15 VS2013か2012で、C++11のstd::threadとblockingできるqueueとstd::futureあたりを使えばいいんじゃないかな。
266デフォルトの名無しさん
2014/03/09(日) 12:57:11.91 >262-265
トン
スレッドの使いまわしについて、ちょっと説明が言葉足らずだったかな。
やりたいのは最初にn個を起動するのまでは同じなんだけど、
データブロックを1個処理し終わったら次のデータブロックを処理させることで
全てのデータブロックを処理し終わるまでn個を実行している状態を維持したい。
(実際にスレッドをループさせるか破棄/生成を繰り返すかは重要ではない。)
ググって見つけたサンプルは、n個のスレッドを最初に起動して、
n個全てが終わるのを待って次の処理(結果表示とか)に進むような使い方のばっかりで、
起動したうちの1個でも終わったら次の処理をやってまた1個終わるのを待つ、みたいなのが見つからない。
開発環境については、実は結構古いのしか持ってない……
ので、これからVS2013の評価版をDLして試してみようと思う。
現状のx86コード、シングルスレッドでどうやら鍵値5の処理を70時間以内で終われそうな予感。
処理結果のファイルを分割し過ぎて恐ろしい数のファイルを生成しちゃってるので、
マルチスレッド化の際にはもっと纏めてしまわないとなぁ。
鍵値6は複数台のPCへの分散処理とかGPU処理とかを真面目に考えないと無理そうだけど。
トン
スレッドの使いまわしについて、ちょっと説明が言葉足らずだったかな。
やりたいのは最初にn個を起動するのまでは同じなんだけど、
データブロックを1個処理し終わったら次のデータブロックを処理させることで
全てのデータブロックを処理し終わるまでn個を実行している状態を維持したい。
(実際にスレッドをループさせるか破棄/生成を繰り返すかは重要ではない。)
ググって見つけたサンプルは、n個のスレッドを最初に起動して、
n個全てが終わるのを待って次の処理(結果表示とか)に進むような使い方のばっかりで、
起動したうちの1個でも終わったら次の処理をやってまた1個終わるのを待つ、みたいなのが見つからない。
開発環境については、実は結構古いのしか持ってない……
ので、これからVS2013の評価版をDLして試してみようと思う。
現状のx86コード、シングルスレッドでどうやら鍵値5の処理を70時間以内で終われそうな予感。
処理結果のファイルを分割し過ぎて恐ろしい数のファイルを生成しちゃってるので、
マルチスレッド化の際にはもっと纏めてしまわないとなぁ。
鍵値6は複数台のPCへの分散処理とかGPU処理とかを真面目に考えないと無理そうだけど。
267デフォルトの名無しさん
2014/03/09(日) 17:54:14.90 そこまで仕様が決まってるならさっさと書けよって話だが。
268デフォルトの名無しさん
2014/03/09(日) 19:14:48.84 自慢
269デフォルトの名無しさん
2014/03/09(日) 19:44:21.54 なんの?w
270デフォルトの名無しさん
2014/03/09(日) 21:24:29.64 典型的なコード書けない君だったか。
271デフォルトの名無しさん
2014/03/09(日) 21:29:22.95 >>261
OpenMPのparallel forで分割するだけでおk
OpenMPのparallel forで分割するだけでおk
272265
2014/03/10(月) 02:53:54.21 >>271
もしも、それで済む用件だったら、一番楽だね。
VS2012と2013なら、無料版でもOpenMP使えるし。
手元のコードでOpenMPでforループ2048周をi7-3760Xで6倍速度くらい。
CUDAで780Tiで2048*2048cudaスレッドでさらに18倍くらいだった。
もしも、それで済む用件だったら、一番楽だね。
VS2012と2013なら、無料版でもOpenMP使えるし。
手元のコードでOpenMPでforループ2048周をi7-3760Xで6倍速度くらい。
CUDAで780Tiで2048*2048cudaスレッドでさらに18倍くらいだった。
273デフォルトの名無しさん
2014/03/10(月) 06:30:44.63 266の処理は、OpenMPのparallel for schedule (dynamic)でできる
274デフォルトの名無しさん
2014/03/10(月) 12:00:01.04 ここはおまえの日記じゃねーぞ。
275デフォルトの名無しさん
2014/03/10(月) 17:32:15.14 スレッドの数って
CPUのコア数より多くしても意味ないよね?
CPUのコア数より多くしても意味ないよね?
276デフォルトの名無しさん
2014/03/10(月) 17:42:02.40 >>275
スレッド内の処理でI/O待ちとかしてる場合は意味あるんじゃないの?
スレッド内の処理でI/O待ちとかしてる場合は意味あるんじゃないの?
277デフォルトの名無しさん
2014/03/10(月) 18:28:34.27 ひたすら計算し続けるなら意味はない。
計算メインというだけならコア数の倍ぐらいまでは
スループットが上がることはある。
計算メインというだけならコア数の倍ぐらいまでは
スループットが上がることはある。
278デフォルトの名無しさん
2014/03/10(月) 19:11:36.58 書きたいアルゴリズムを自然に書けるという理由で
マルチスレッドに意味があることはある
GUIなんかそうだろうね
マルチスレッドに意味があることはある
GUIなんかそうだろうね
279デフォルトの名無しさん
2014/03/10(月) 19:22:36.70 そんなGUIの実装は見たこと無いです。
280デフォルトの名無しさん
2014/03/10(月) 19:40:06.12 GUI スレッドと別に好きなスレッドを立ててうまくやっていけるってことだろうに‥‥
win16 の泣きそうな世界を知らないのか?
win16 の泣きそうな世界を知らないのか?
281デフォルトの名無しさん
2014/03/10(月) 19:46:18.78 それはCUIでも同じだろう。
282デフォルトの名無しさん
2014/03/10(月) 21:47:19.99 処理内容・数によるけど大量のパラ処理はCPUのマルチコアやNvidiaのGPGPUからAMDのGPGPUでopenCLが定番になってきたからな
そして、今後はAMDのHSAも定番になるって感じになっているし。
そして、今後はAMDのHSAも定番になるって感じになっているし。
283デフォルトの名無しさん
2014/03/11(火) 17:20:13.24 いつGPGPUが定番になってきたんだ。
むしろまじ使えないってスルーされてる感が半端ない。
むしろまじ使えないってスルーされてる感が半端ない。
284デフォルトの名無しさん
2014/03/11(火) 20:17:22.02 それは nvidia/cuda
285デフォルトの名無しさん
2014/03/13(木) 20:09:50.61ID:pPziPNkQ インテルのやたらコア数が多い奴にビットコイン掘らせたらよさげよね
286デフォルトの名無しさん
2014/03/13(木) 20:31:14.10ID:gEHR9Glb GPGPUは特定の局面に限って言えば使えるんだが、一般の用途では
その特定の局面が存在しないというかわいそうな技術。
その特定の局面が存在しないというかわいそうな技術。
287デフォルトの名無しさん
2014/03/13(木) 20:32:14.41ID:gEHR9Glb ちなみにbit coinのマイナーはGPGPUから専用設計のASICに
主戦場が移った。消費電力が段違いなんだとさ。
GPUでやったら電気代で赤字になりそうだ。
主戦場が移った。消費電力が段違いなんだとさ。
GPUでやったら電気代で赤字になりそうだ。
288デフォルトの名無しさん
2014/03/13(木) 20:49:30.32ID:/ZWTiswr289デフォルトの名無しさん
2014/03/13(木) 21:06:24.71ID:k4ocBl+v FPGA経由でASICな。
しかも最近じゃあ、専用マシン(アクセラレータ?)を手に入れても、掘るより転売するほうが儲かるとかw
しかも最近じゃあ、専用マシン(アクセラレータ?)を手に入れても、掘るより転売するほうが儲かるとかw
290デフォルトの名無しさん
2014/03/13(木) 22:02:39.26ID:gEHR9Glb で、自販機の下に落ちてる100円玉を地道に拾うぐらいなら
ショベルカーでATMごと盗んじゃえってのがマウントゴックス。
ショベルカーでATMごと盗んじゃえってのがマウントゴックス。
291デフォルトの名無しさん
2014/03/13(木) 22:18:30.00ID:hR60BOrR292デフォルトの名無しさん
2014/03/14(金) 16:35:28.14ID:8t3OXl/v 2年ほど前にbitcoin採掘をしていたが
お前らの想像の千倍くらい時間のかかる処理だったし
今もっと難しくなってるから既に個人で掘るのは無理なんじゃね
お前らの想像の千倍くらい時間のかかる処理だったし
今もっと難しくなってるから既に個人で掘るのは無理なんじゃね
293デフォルトの名無しさん
2014/03/14(金) 16:57:23.89ID:90E4Zs91 で、結局どのくらい掘れた?
294デフォルトの名無しさん
2014/03/14(金) 17:00:16.55ID:UFFJd6rH 千倍台で分散する
295デフォルトの名無しさん
2014/03/14(金) 17:37:55.81ID:p2oYKy+P >bitcoin採掘
どういうこと?
どういうこと?
296デフォルトの名無しさん
2014/03/14(金) 17:57:18.99ID:I0jjMatv >>295
むちゃくちゃ簡単に言うとBitCoinの正規のビットパターンは計算で求まる、でこれの正しい組み合わせを計算する事を採掘(マイニング)って言うだけの話
むちゃくちゃ簡単に言うとBitCoinの正規のビットパターンは計算で求まる、でこれの正しい組み合わせを計算する事を採掘(マイニング)って言うだけの話
297デフォルトの名無しさん
2014/03/14(金) 17:59:12.49ID:Sx19eOr2 >>296
ありがとん
ありがとん
298デフォルトの名無しさん
2014/03/15(土) 00:32:35.88ID:IYjSi/+A ちょいと相談。
データ処理とファイルI/Oを別スレッドに分けてstackを介してやり取りしてるんだけど、
気がつくとやたらメモリを食ってることがある。
調子のいいときは数MBしか食わないのに、最悪は2GB食って落ちることもある。
ファイルの生成の様子なんかを観察してる限りで、2つの原因を想像。
A)処理済みデータをstackに積むのに比べてファイルに書き出す処理が追いついていない
B)stackがバカスカとメモリを確保している
ファイル書き出しのスレッドの内部処理は、共用stackからローカルstackにコピーして、
コピーが終わった時点で共用stack占有状態を開放、ローカルstackを順次書き出すようにしている。
Aは大量にデータを溜めることの無いようにファイル書き出しの頻度を上げる方法について、
Bはメモリを無駄に食わない方法について、アドバイスを聞きたい。
stackを使ったのはqueueに比べて頭が固定な分だけメモリの利用効率が高そうだったことと、
データの順番には意味がないから逆順になっても問題がないことによるものなので、
別のコンテナを使ったほうがいいなら、それでも構わない。
データ処理とファイルI/Oを別スレッドに分けてstackを介してやり取りしてるんだけど、
気がつくとやたらメモリを食ってることがある。
調子のいいときは数MBしか食わないのに、最悪は2GB食って落ちることもある。
ファイルの生成の様子なんかを観察してる限りで、2つの原因を想像。
A)処理済みデータをstackに積むのに比べてファイルに書き出す処理が追いついていない
B)stackがバカスカとメモリを確保している
ファイル書き出しのスレッドの内部処理は、共用stackからローカルstackにコピーして、
コピーが終わった時点で共用stack占有状態を開放、ローカルstackを順次書き出すようにしている。
Aは大量にデータを溜めることの無いようにファイル書き出しの頻度を上げる方法について、
Bはメモリを無駄に食わない方法について、アドバイスを聞きたい。
stackを使ったのはqueueに比べて頭が固定な分だけメモリの利用効率が高そうだったことと、
データの順番には意味がないから逆順になっても問題がないことによるものなので、
別のコンテナを使ったほうがいいなら、それでも構わない。
299デフォルトの名無しさん
2014/03/15(土) 00:45:28.81ID:CF1cuZUb >>298
そもそも一旦メモリに載せる必要があるのか?非同期IOじゃだめ?
どうしても載せなきゃいけないとして、Aはあまり意味がない。
よほど頭の悪い実装をしてなければ、現状メモリを喰ってるってことは
inputよりoutputの方が遅いってことだ。頻度で解決する問題じゃない。
Bの方は、conditon variableでスタックのサイズが一定より大きくなったら
inputを待たす方法が一番簡単じゃないか。
そもそも一旦メモリに載せる必要があるのか?非同期IOじゃだめ?
どうしても載せなきゃいけないとして、Aはあまり意味がない。
よほど頭の悪い実装をしてなければ、現状メモリを喰ってるってことは
inputよりoutputの方が遅いってことだ。頻度で解決する問題じゃない。
Bの方は、conditon variableでスタックのサイズが一定より大きくなったら
inputを待たす方法が一番簡単じゃないか。
>調子のいいときは数MBしか食わないのに、最悪は2GB食って落ちることもある。
常識的に考えてバグ持ち。
>コピーが終わった時点で共用stack占有状態を開放、
ふつーstack<void *>。
常識的に考えてバグ持ち。
>コピーが終わった時点で共用stack占有状態を開放、
ふつーstack<void *>。
301デフォルトの名無しさん
2014/03/15(土) 08:03:00.01ID:B9xccETs バッファに制限を設けて
書き込みが詰ったら待てばいいだけでは
書き込みが詰ったら待てばいいだけでは
302デフォルトの名無しさん
2014/03/15(土) 08:17:50.21ID:kVDIpCQy リングバッファ、そして新しいバグ
303デフォルトの名無しさん
2014/03/15(土) 08:31:05.02ID:xmGMuN0W リングバッファてメモリが一杯になったらファイルに書き出すように実装するのが普通?
304デフォルトの名無しさん
2014/03/15(土) 12:26:30.58ID:GnRScPte 普通じゃない
305デフォルトの名無しさん
2014/03/15(土) 13:36:30.86ID:royCDzaU どうすんの?あふれたら捨てるの?
306デフォルトの名無しさん
2014/03/15(土) 13:43:41.30ID:E7qCmrfx 環境によっては勝手にswapしてくれるかもしれない
307デフォルトの名無しさん
2014/03/15(土) 14:07:58.75ID:PqTylRc6308デフォルトの名無しさん
2014/03/15(土) 14:16:36.02ID:1lWAVkUO 書き出すデータのフォーマットを工夫してサイズを小さくするとか、
書き込み先をSSDにしたりとか、動作環境のスペックを見直すという手も。
書き込み先をSSDにしたりとか、動作環境のスペックを見直すという手も。
309デフォルトの名無しさん
2014/03/15(土) 14:17:30.95ID:y0lYdZ+H310デフォルトの名無しさん
2014/03/15(土) 16:35:55.25ID:x1nRJa7F いるんだよなー、そもそも不可能なことを引き受けちゃう奴って
311デフォルトの名無しさん
2014/03/15(土) 20:31:13.52ID:9prhxYaH てへ、昔の話がねた
312デフォルトの名無しさん
2014/03/15(土) 22:04:58.47ID:B9xccETs 金あるならFusion-ioを使えばいい
圧縮で減るようなデータならsnappyで圧縮する
圧縮で減るようなデータならsnappyで圧縮する
313デフォルトの名無しさん
2014/03/15(土) 23:24:57.03ID:Jbm5xDHA 普通のリアルタイムではありえん
314313
2014/03/15(土) 23:26:35.57ID:Jbm5xDHA 訂正 以上です
315デフォルトの名無しさん
2014/03/16(日) 01:00:35.01ID:67pIoXcC リアルタイムシステムというのがRTOSを使っているという意味なら
送信側か他のタスクがwait入れてなくて書き込みタスクが動いていないとかってバグじゃないかな
>>313
時代は変わりCPUを使って圧縮したほうがIOが減って低レイテンシにできる
送信側か他のタスクがwait入れてなくて書き込みタスクが動いていないとかってバグじゃないかな
>>313
時代は変わりCPUを使って圧縮したほうがIOが減って低レイテンシにできる
316デフォルトの名無しさん
2014/03/16(日) 01:13:20.61ID:CvhR8B+T リアルタイムっていうのは入力があってから何ms以内に応答を
返せなければならないみたいなシステムのことでしょ。
コンピュータ制御の工作機械で応答が遅くて削りすぎましたとか
許されないから。
返せなければならないみたいなシステムのことでしょ。
コンピュータ制御の工作機械で応答が遅くて削りすぎましたとか
許されないから。
317デフォルトの名無しさん
2014/03/16(日) 01:14:58.23ID:Va0mC41/ >261だけど、概ね期待通りの動作になってきた
速度面でも、現在使用中のPCでシングルスレッドだと70時間ほど掛かってたから、
マルチスレッド化で6コアに分散して細部の調整込みで10時間切れれば恩の字と思ってたのに、なんと4時間半を切れたw
最新のCPUを使えば2時間も夢じゃないかも
あとは演算処理orデータのやり取りのバグを潰せばほぼ完成
(結果の個数が少し足りない)
速度面でも、現在使用中のPCでシングルスレッドだと70時間ほど掛かってたから、
マルチスレッド化で6コアに分散して細部の調整込みで10時間切れれば恩の字と思ってたのに、なんと4時間半を切れたw
最新のCPUを使えば2時間も夢じゃないかも
あとは演算処理orデータのやり取りのバグを潰せばほぼ完成
(結果の個数が少し足りない)
318デフォルトの名無しさん
2014/03/17(月) 12:29:47.16ID:iella/tJ シングルスレッドのまま細部の調整とやらだけでどこまで行くのやら
319デフォルトの名無しさん
2014/03/17(月) 15:11:57.25ID:ot8TfsyN どんだけ時間がかかってるのやら。
320デフォルトの名無しさん
2014/06/13(金) 00:28:43.87ID:cRyKxN+T 共有/排他ができるロックと条件変数があるとき、これらを使って
共有から排他にエスカレーションできるロックを構成することってできる?
共有から排他にエスカレーションできるロックを構成することってできる?
321デフォルトの名無しさん
2014/06/13(金) 01:34:28.10ID:+YSiec3A ロックとか条件変数って排他するものだよね。共有できるロックって何?
RCUのこと?
RCUのこと?
322デフォルトの名無しさん
2014/06/13(金) 08:49:59.19ID:cRyKxN+T ええと、いわゆるread-writeロックのこと。
323デフォルトの名無しさん
2014/11/06(木) 22:37:47.07ID:iaZsweTc マルチスレッドは馬鹿には無理
馬鹿は使ったほうがいいところでマルチスレッドを使わずに
使わないほうがいいところっ使ってややこしくしたりする
馬鹿は使ったほうがいいところでマルチスレッドを使わずに
使わないほうがいいところっ使ってややこしくしたりする
324デフォルトの名無しさん
2014/11/06(木) 23:24:42.11ID:ETjlkHcn 負荷分散とか難易度高なのにね
325デフォルトの名無しさん
2014/11/09(日) 01:27:34.76ID:UGYkYxzf スレッディング・ビルディング・ブロックについて勉強し始めた所なんだけど、どうなの?
理解して使うと安全で早くなりそうだとは思ったが、メモリ処理の効率とかどうなるんかな?
とか思ってる所なんだけど・・・
理解して使うと安全で早くなりそうだとは思ったが、メモリ処理の効率とかどうなるんかな?
とか思ってる所なんだけど・・・
326デフォルトの名無しさん
2014/11/09(日) 07:37:34.59ID:SGm17f1c 安全にするには、ある程度やった人しか...
327デフォルトの名無しさん
2014/11/09(日) 22:48:01.80ID:wyNvyEnQ メモリ処理の効率って具体的にどういう点?
mallocとかのメモリ管理の効率?それともキャッシュヒット率のような意味?
mallocとかのメモリ管理の効率?それともキャッシュヒット率のような意味?
328デフォルトの名無しさん
2014/11/10(月) 09:36:09.81ID:W8sKwQAR オライリーのTBBの本買ったけど途中まで読んで放置してたw
ラムダ式を使えばoperator()使わなくていいなら改めて勉強しなおそうかな
>>325
コンカレントコンテナとかは並列にメモリ割り当てしたり、キャッシュラインの競合を考慮した
アロケータを持ってるみたいだから、自前でやるのと変わらないぐらいにはなってるんじゃない?
TBBの本も中古ならかなり安いから買ってみるといいよ
ラムダ式を使えばoperator()使わなくていいなら改めて勉強しなおそうかな
>>325
コンカレントコンテナとかは並列にメモリ割り当てしたり、キャッシュラインの競合を考慮した
アロケータを持ってるみたいだから、自前でやるのと変わらないぐらいにはなってるんじゃない?
TBBの本も中古ならかなり安いから買ってみるといいよ
329デフォルトの名無しさん
2014/11/12(水) 14:11:39.04ID:nS55KI9v 基礎的な質問で申し訳ないのですが
同じ変数に複数のスレッドがアクセスしてはいけないのはわかりますが
同じコードに複数のスレッドがアクセスするのはいいのでしょうか?
例えば何の変数にもアクセスしない関数を複数のスレッドが同時実行するのはいいのでしょうか?
同じ変数に複数のスレッドがアクセスしてはいけないのはわかりますが
同じコードに複数のスレッドがアクセスするのはいいのでしょうか?
例えば何の変数にもアクセスしない関数を複数のスレッドが同時実行するのはいいのでしょうか?
330デフォルトの名無しさん
2014/11/12(水) 14:21:32.89ID:Tjo57cUc ダメな理由でも探してるの?
331デフォルトの名無しさん
2014/11/12(水) 14:31:27.32ID:nS55KI9v >>330
今書いているプログラムで
C#の関数の中でシグナルを使っているのですが
他のスレッドからその関数を呼ぼうとするとエラーが起こるのです・・・
もしかしたら関数自体にシグナルをかけなければいけないのかなぁと思って
今書いているプログラムで
C#の関数の中でシグナルを使っているのですが
他のスレッドからその関数を呼ぼうとするとエラーが起こるのです・・・
もしかしたら関数自体にシグナルをかけなければいけないのかなぁと思って
332デフォルトの名無しさん
2014/11/12(水) 14:35:31.55ID:Tjo57cUc C#のシグナルってよーしらんけど
エラーが出るってことは、質問の内容と違うことやってるんじゃないの
エラーが出るってことは、質問の内容と違うことやってるんじゃないの
333デフォルトの名無しさん
2014/11/12(水) 15:18:29.39ID:ghkKScBM 同期オブジェクトを保持している変数を上書きしていそうな気がするんだが
334デフォルトの名無しさん
2014/11/12(水) 16:32:42.96ID:yNtQ/r84 いろいろ分かってないだけだろう
335デフォルトの名無しさん
2014/11/13(木) 06:29:27.90ID:w/Cn+ODk ライブラリがマルチスレッドに対応してないだけかと
336デフォルトの名無しさん
2014/11/13(木) 06:35:25.00ID:4ACzZkWI /MT
337デフォルトの名無しさん
2014/11/13(木) 13:44:55.73ID:t6y7WFqt C#ならエラーメッセージやスタックトレースが出てるだろ
338デフォルトの名無しさん
2014/11/15(土) 11:02:51.29ID:JwZZHuNb >>329
同じ関数は実行するのは、スレッドが違えばコンテキストスイッチが起きて、レジスタとかスタックが入れ替わるから大丈夫
メンバ変数とstatic変数さえ使わなければ何個起動しても排他も何も考えなくてよいぞ
同じ関数は実行するのは、スレッドが違えばコンテキストスイッチが起きて、レジスタとかスタックが入れ替わるから大丈夫
メンバ変数とstatic変数さえ使わなければ何個起動しても排他も何も考えなくてよいぞ
339デフォルトの名無しさん
2014/11/16(日) 00:17:15.94ID:lWtIBSfv 同じ変数に複数のスレッドがアクセスするならクリティカルセクションが楽だ
340デフォルトの名無しさん
2014/11/16(日) 19:55:00.63ID:9ZsvKJox linuxですがスレッドで同じファイルに書き込む場合、競合することってありますかね?
341デフォルトの名無しさん
2014/11/16(日) 20:11:07.08ID:1qsvk//V 勿論。
342デフォルトの名無しさん
2014/11/16(日) 21:20:39.95ID:4XTrCB2a 論外
343デフォルトの名無しさん
2014/11/16(日) 21:40:57.77ID:Kyr5+wjo >>339
もう win32 のクリティカルセクションとイベントオブジェクトでおなかいっぱい、というかこれだけでたいがいうまくいくのでは?
もう win32 のクリティカルセクションとイベントオブジェクトでおなかいっぱい、というかこれだけでたいがいうまくいくのでは?
344デフォルトの名無しさん
2014/11/30(日) 17:47:06.48ID:H8djdLBQ 複数のスレッドがひとつのミューテックスのアンロックを待っていた場合、
つぎにどのスレッドがミューテックスを取得するかはランダムですか
つぎにどのスレッドがミューテックスを取得するかはランダムですか
345デフォルトの名無しさん
2014/11/30(日) 18:09:41.22ID:ddtepLmv はい
待っていなかった別のスレッドがちょうどいいところに来てミューテックスを取得していくこともあります
待っていなかった別のスレッドがちょうどいいところに来てミューテックスを取得していくこともあります
346デフォルトの名無しさん
2014/12/01(月) 00:39:51.39ID:Az7+Eliy いいえ
待っていなかった別のスレッドがちょうどいいところに来てミューテックスを取得していくこともあります
待っていなかった別のスレッドがちょうどいいところに来てミューテックスを取得していくこともあります
347デフォルトの名無しさん
2014/12/08(月) 19:13:20.61ID:PHJZbN+V スレッドとミューテックスだけ覚えたけど
なにを作ったらいいのかわからんたい
なにを作ったらいいのかわからんたい
348デフォルトの名無しさん
2014/12/08(月) 22:37:39.16ID:PHJZbN+V チャット作ることにしました
レスを投稿する
ニュース
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 【悲報】女の子、整形で片目失明...高市助けて... [856698234]
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 自閉症が「んなっしょい」と連呼するお🏡
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 【悲報】風俗嬢「風俗の客は既婚者や彼女持ちがほとんど。いわゆる弱者男性の客はほぼない」なぜ弱者男性は風俗を嫌うのか? [257926174]
