マルチスレッドプログラミング相談室 その9 (459レス)
1-

1
(1): デフォルトの名無しさん [sage] 2012/06/15(金) 01:31:57.88 AAS
マルチスレッドプログラミングについて語るスレ

■前スレ
マルチスレッドプログラミング相談室 その8
2chスレ:tech

■過去スレ
その1 2chスレ:tech
その2 2chスレ:tech
その3 2chスレ:tech
その4 2chスレ:tech
その5 2chスレ:tech
その6 2chスレ:tech
その7 2chスレ:tech

OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ
【OS】
【言語】
【実行環境】
【その他特記する事項】
435: デフォルトの名無しさん [sage] 2019/07/21(日) 01:57:36.05 ID:dcJVZcgj(1) AAS
10コアとかいってるからマルチプロセッサというよりメニーコア活用術?
436: デフォルトの名無しさん [sage] 2019/07/21(日) 08:19:29.20 ID:gryZIvyQ(2/2) AAS
>>433
433(1): デフォルトの名無しさん [sage] 2019/07/21(日) 01:03:16.42 ID:oN+9KGia(1) AAS
質問の低レベル化が甚だしい。アセンブラを勉強して基礎固めを。
むしろアセンブラのほうが分かりやすいんだけど。

各コアにPCセットして起動すればいいの?
プロセッサの仕様書読んでみるわ。
437: デフォルトの名無しさん [sage] 2019/07/21(日) 08:23:47.17 ID:nevBE1rB(1) AAS
並列処理じゃなくて並行処理で探せば
438: デフォルトの名無しさん [sage] 2019/12/05(木) 19:00:58.65 ID:sV2dE7Px(1) AAS
マルチスレッドの排他処理で詰まってスレ検索して来てみたけどこのスレは高尚過ぎるなw
初心者スレにでも行こう
439: デフォルトの名無しさん [] 2021/03/04(木) 23:27:05.69 ID:320wEDvY(1) AAS
_beginthreadex() を使ったマルチスレッドプログラムについて質問です。
この関数の説明を見ると、「_beginthreadex() のコールに成功すると、スレッドのために
タイムスライスが割り当てられたか否かによらず、スレッドはアクティブ(non-signal)になる」
とあったのですが、_beginthread() がスレッドハンドルを返すよりも前にスレッド関数内の
処理が実行される(完了する)ことはありえますか?
440
(1): デフォルトの名無しさん [sage] 2021/03/05(金) 15:45:04.28 ID:0Dz+Yobc(1) AAS
>成功した場合、これらの各関数は、新しく作成されたスレッドへのハンドルを返します。ただし、新しく作成されたスレッドが短時間で終了した場合、 _beginthread は有効なハンドルを返さない可能性があります。 (「解説」の説明を参照してください)。

>_Beginthread よりも _beginthreadex を使用する方が安全です。 _Beginthread によって生成されるスレッドが短時間で終了した場合は、 _beginthread の呼び出し元に返されるハンドルが無効であるか、別のスレッドを指している可能性があります。 ただし、 _beginthreadex によって返されるハンドルは _beginthreadex の呼び出し元によって閉じられる必要があるため、 _beginthreadex がエラーを返さなかった場合は、有効なハンドルであることが保証されます。

ハンドルが有効であることは保証されているけど
実行順についての言及はないし、
そもそも別スレッドなら、どちらが先に行われるかについては何の保証もないと考えるべきじゃないのかな
「APIから戻る」のだって実行権がなければ後回しにされる可能性はあるんだから
441: sage [] 2021/03/06(土) 05:17:04.33 ID:0GCeIGT3(1) AAS
>>440
ご返信ありがとうございます。概ね理解できました。
勉強不足で、マルチスレッドの仕組みについて誤解していたようです。
442: デフォルトの名無しさん [] 2021/03/06(土) 11:08:41.13 ID:pd/Aiz5V(1) AAS
ちなみにCentOSはスレッドのコアが指定できるよ。
443: デフォルトの名無しさん [sage] 2021/03/06(土) 11:30:24.47 ID:UzpsIFsk(1) AAS
macOSだとコア指定できない。
444: デフォルトの名無しさん [] 2021/03/06(土) 13:08:47.51 ID:VGFn/kw3(1) AAS
あわしろ氏によると、Macは既にオワコンなので、WSLを使うと良いらしい。
445: デフォルトの名無しさん [] 2021/03/25(木) 15:15:49.52 ID:LuSagST9(1) AAS
針に糸を通す( thread a needle
糸をつむぐ( spin thread [yarn]
糸が切れた( The thread broke.
琴の糸を締める( tighten a string of a koto
糸をかき鳴らす( strum the strings
446: デフォルトの名無しさん [sage] 2021/04/03(土) 09:59:34.29 ID:CHs8071g(1) AAS
このスレ来年で10年か
スレ推奨図書とかないの?
447
(2): デフォルトの名無しさん [sage] 2022/04/14(木) 16:49:21.50 ID:wwxSZsaE(1) AAS
マルチスレッド処理の花形といえばハードなリアルタイムスレッドとバックグラウンドスレッドの間のデータのやり取りだと思ってるんだが
スレの過疎っぷりを見るに、殆どの人にとって必要のないものだったんだな
448: デフォルトの名無しさん [sage] 2022/05/26(木) 01:42:01.15 ID:EhvYdlEg(1) AAS
>>447
MS-DOS のデバイスドライバにでも痕跡が残っていたような‥
どうするつもりだったんだろう?
449: デフォルトの名無しさん [sage] 2022/05/26(木) 16:41:59.49 ID:kr4vk/7I(1) AAS
>>447
ハードな略が動いている間はバック略を動かさないから大して考えることは無い
DOSの頃と同じだな
450
(1): デフォルトの名無しさん [] 2023/10/18(水) 18:12:44.04 ID:k+tvnK8M(1/3) AAS
>>432
432(2): デフォルトの名無しさん [sage] 2019/07/21(日) 00:46:58.94 ID:gryZIvyQ(1/2) AAS
行列演算を並列処理とかそういう粒度の細かな並列化の話ばっかりで。
せっかく10コアとかあるんだから、各コアに別々のプログラムを走らせておいて
同期しながら処理とかしたいんだけどどうするのがいいかよく分からない。
fork させてメッセージやりとりすれば良さそうなんだけど。
やりたいことがちょっと特殊かもね。
 とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。

 サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
451
(1): デフォルトの名無しさん [] 2023/10/18(水) 18:13:06.20 ID:k+tvnK8M(2/3) AAS
>>432
 とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。

 サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
452: デフォルトの名無しさん [] 2023/10/18(水) 18:16:53.34 ID:k+tvnK8M(3/3) AAS
>>450-451
あ”、二重投稿になったか。

えっと、ちょっと補完。
サブスレッドの処理についてはループして待たせておく。終わったら終了を知らせるイベントを発生させる。
453: デフォルトの名無しさん [] 2023/10/19(木) 01:25:35.07 ID:8UDFhheE(1/2) AAS
>>365
REID 1 みたいな例があるから必ずしも昔の技術というわけではないな。
454: デフォルトの名無しさん [sage] 2023/10/19(木) 01:28:22.25 ID:8UDFhheE(2/2) AAS
>>16
16(1): デフォルトの名無しさん [sage] 2012/06/16(土) 17:33:56.57 AAS
>>13
そのあたりだと、API 呼び出しのオーバーヘッドもバカにならないから
自前で実装したほうがいいんじゃね?
 あれって、OSの機能だから気にしなくても良いというのでは駄目か?
455: デフォルトの名無しさん [sag] 2025/05/12(月) 13:23:26.42 ID:Zw0HuL6G(1) AAS
1000msecでコンテキストスイッチ何回発生するんだこれ
456: デフォルトの名無しさん [sage] 2025/05/12(月) 13:41:45.50 ID:zCv6/zTu(1) AAS
ここで multi process な質問は反則?
457: デフォルトの名無しさん [] 2025/05/13(火) 15:19:11.88 ID:lpqGnCjc(1) AAS
高級言語しか使えない身で話すけど
Pythonで超重量級のCPU処理とOpenAIに対するリクエストで数秒I/Oに飛ぶ処理の二つがそれぞれタスクに分解されてるとき、
前者のタスクが処理完了すると後者のタスクで数個~数十個くらいタスクが新規作成されて、(c, c, c, i, i, i, i, i, i, c, i, i,...)
内部どうなってるのか知らんけどI/OでGIL解放されても後続のタスクが何個も後者のタスクだから前者のタスクがくそ遅延するってあり得る?
両者のタスクを別々のプロセスに切り分けたら前者のタスクが遅延するとかいうことなくなったんだけどさ
458: デフォルトの名無しさん [sag] 2025/05/14(水) 17:07:33.93 ID:uDIzjmjF(1) AAS
そういう場合
同じ状況になる再現コードを貼りましょう
459: デフォルトの名無しさん [] 2025/05/14(水) 17:34:26.40 ID:Ga6mti+e(1) AAS
5次方程式に新公式を発見:ルートを超える新理論
2025.05.14 17:05:56 WEDNESDAY
外部リンク:nazology.kusuguru.co.jp
>>オーストラリアのニューサウスウェールズ大学(UNSW)で行われた研究
プログらまーも覚えるとよい

125年越しに解決したかもしれない「ヒルベルトの第6問題」とは?
2025年05月10日 15時00分
外部リンク:gigazine.net
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.960s*