[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 17:44 / Filesize : 232 KB / Number-of Response : 919
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

マルチスレッドプログラミング相談室 その7



1 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:26:16 ]
マルチスレッドプログラミングについて語るスレ

■前スレ
マルチスレッドプログラミング相談室 その6
ttp://pc11.2ch.net/test/read.cgi/tech/1187008532/

■過去スレ
その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/

OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ

【OS】

【言語】

【実行環境】

【その他突起する事項】

29 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 10:57:06 ]
>>27
Windows で pthread ?

なんでそんなことしたいのかを書かないと、単なるバカにしか見えないよ。

あと、pthread_cond_timedwait がダメダメなら、setitimer でシグナル
もらうとかすればいいんじゃないのか?

30 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 11:09:52 ]
ttp://sourceware.org/pthreads-win32/ のソースを確認したのだが、
絶対時間をすぐさま待機時間(ミリ秒)に変換。
最終的にWaitForMultiObjectのtimeout指定で使ってた。


31 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 11:12:15 ]
Win32と言ったりpthreadと言ったり、答えようがない。
Win32には延長付のタイムアウトのAPIや時刻に影響しない経過時間を計測できるAPIがあるのに残念だったな。


32 名前:27 mailto:sage [2008/07/12(土) 11:18:17 ]
>>29
俺は>>27だが、>>19=>>23とは別人だ。
もともとの>>19がWindowsでpthreadのようだけど、企業でそういう指定があるから
だと推測した。それで「使ってるフリして回避する方法」として、同期だけWin32したら?
と言ってみた。

33 名前:19 mailto:sage [2008/07/12(土) 13:00:21 ]
>>19=>>23だが、なんか混乱させてるな。
俺が現実に直面してる仕事なんかに関係なく、
このpthread_timedwaitの仕様どうなの?って話がしたかっただけ。
俺でも分かるような欠陥が本当にメジャーな標準規格にあるのか
疑問だったので、もしかしたら、今のPthreadの枠内で簡単に解決する方法があるのかと思った。
それも聞きたかったことの一つ。
Pthread本を見ると、絶対時刻が使われていることのメリットしか書かれてないけど、
俺としては、相対時刻でタイムアウト監視できるAPIの方がよほど必須のように思えたので。


34 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 14:15:09 ]
tasksetの使い方教えてください。オプションとか…。
 スレッド1→コア1
     …
 スレッド4→コア4
みたいに割り当てたいのですが、
tasksetじゃできないですかね…?
ちなみにlinuxでopenmpでやろうかと思っています

35 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 14:21:58 ]
で、このスレとしてはPthreadではできないという結論になると。
>>26 C++ boostも絶対時間だったような。

36 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 14:36:44 ]
>>34
そうしたい理由を先に言ったほうがいいよ
まさか
「割り当てられないとしたらその仕様どうなの?って話がしたかっただけ」
じゃないよな

37 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 14:51:09 ]
>>35
最新版ではabstimeとreltime向けに別々の時間クラスが定義されて
timedwaitはオーバーロードされてる。
例によって、実装はテキトーに変換してるだけなので、
ネイティブに近い方のオーバーロードだけは信頼できるってかんじかな。



38 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 15:29:11 ]
>>37
信頼できるかどうかはOS次第だと思う。
どんなラッパー仕様だろうと最終的にはOSのAPIを呼び出すことになるので
>>30は当然のこと。もしPthreadのプログラムインターフェースしか提供されて
いないOSなら信頼はできない。

39 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 02:16:06 ]
pc11.2ch.net/test/read.cgi/unix/1166620307/69

笑った

40 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 03:48:14 ]
>>19はPthreadの絶対時間指定によるデメリットを仕様欠陥と(あちこちで)指摘してるだけだろ。
一貫してるからいいんじゃね?
例がアレなので相手にされてないようだけど「システム時刻を修正されるとまずい」ってのは
事実で、時間が巻き戻らない前提ってのは無茶苦茶だ。SIベンダがBtoBで構築するシステムなら
ともかくフリーソフト作れねーぞ。

しかも理由が「絶対-相対の変換の足し算中にプリエンプションが発生すると待ち時間がずれる
から」ってのは納得できねー。タイムアウト時間にごく僅かな誤差が出ることに問題あるとは
思えないし、責任をアプリに押しつけただけなのは基盤として問題だろ

41 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 05:49:24 ]
>>19>>23の書き込みが余計だったな、誤解を招いた。
続けるなら>>39のUNIX板のがいいじゃないか。


42 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:02:30 ]
>>40
え〜っと、本人乙でいいかな。

43 名前:デフォルトの名無しさん [2008/07/13(日) 23:27:07 ]
マルチスレッド対応にしたら
デュアルコアのCPUを両方とも使って処理してくれるの?

44 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:33:38 ]
>>43
普通はOSまかせ。
OSはコアをまんべんなく使おうとするから普通は両方使ってくれるが、
他のプログラムが1つのコアをめいいっぱい使ってたら、
同じコアに振られることもある。

45 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 08:20:00 ]
サンクス

46 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 01:20:09 ]
自演乙

47 名前:デフォルトの名無しさん [2008/07/17(木) 02:11:04 ]
自演乙厨w



48 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:32:11 ]
void f()
{
static struct Hoge hoge;

pthread_mutex_lock();
///hogeにアクセス
pthread_mutex_unlock();
}

こんな感じのコードあってstaticだから安全だって譲らない
K主任って糞がいます助けてください

49 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:00:04 ]
Hogeがコンストラクタを持つの?

50 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:01:55 ]
>>49
C99ですC++じゃないです

51 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:11:21 ]
K主任も災難だな

52 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:17:01 ]
>>48
どういう危険があると思うの?


53 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 02:50:08 ]
>>48
少なくともそこで示されている記述だけじゃ
問題のあるソースだとは思えん。

pthread_mutex_lock()とかの引数に渡されているmutexが
非staticなauto変数とかだったらダメだけど。

54 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 14:39:31 ]
hogeのアドレスを外部に漏らして、そっちはmutexなしでアクセスとか?

55 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 17:07:42 ]
安全って理由が staticだから でmutexはあってもなくても関係ないって
K主任が主張してあるのであれば、これはもうどうしようもない

56 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 17:19:44 ]
ワロタ

57 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 18:39:06 ]
つまりこういうこと?

>>48って糞が粘着しています助けてください  K主任





58 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 20:42:06 ]
>>48
どんな危険があると考えてるのな?
hogeのポインタを外に出さない限りmutexはいらないと思うけど。

59 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 21:04:23 ]
>>58
fが複数スレッドから呼ばれるとしたら、hogeをどうするのかによるね。

60 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 21:11:22 ]
>>59
複数スレッドで呼ぶとどうなるのでつか?

61 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:46:35 ]
K主任が見てるようなので退散します・・・

62 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 02:19:01 ]
strtokとstrtok_rの違いを考えろ

63 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 03:51:23 ]
ネタを振った責任として>>48は、何が問題があると思うのかくらいは
説明して欲しいな。

64 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 08:50:23 ]
>>63
K主任の糞っぷりです

65 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:35:37 ]
>>60
hoge がstaticだから、hogeのコンストラクタが(あれば)起動時
一度だけ動くのみ。
だから排他部分の外で宣言されていても安全、ってことだろう。

とはいえstaticじゃ無かったとしても何か危険があるかというと
よくわからんから、staticだから安全ってのはなんか変な主張
という気がしなくもないな。

66 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:54:53 ]
アドレスを外部に漏らしてなければ、この関数からしか
アクセスできない。そこに排他がちゃんとかかってるか
ら大丈夫だろ? って言うことだと思うが。

67 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 17:24:19 ]
C99って言ってるから(>>50)コンストラクタはないんだが、
仮にc++だとすると

>>65
>hoge がstaticだから、hogeのコンストラクタが(あれば)起動時
>一度だけ動くのみ。

違うぞ。
static struct Hoge hoge; の行に到達したときに、
一度だけ実行される。
その「一度だけ」のフラグが排他されていないことがあるだろう、
というのが起こりうる問題。



68 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 17:59:36 ]
仮にC++だとするとこうするべきってことですか?
pthread_mutex_lock(); 
static struct Hoge hoge; 
///hogeにアクセス 
pthread_mutex_unlock(); 


69 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 18:08:21 ]
前スレ850くらいからその話題が出てるわけで

70 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 19:39:41 ]
DCLでいいよ。

71 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 22:49:34 ]
そこで-fthreadsafe-statics

72 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 23:29:57 ]
そんな実装依存じゃK主任に笑われるぞ

73 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:24:43 ]
ハードのことはよく分からないのですが、同じメモリアドレスに複数のコアが同時アクセスすると
なにか問題が起こることはあるのでしょうか?

例えば整数型のグローバル変数aを作り、
スレッド1ではそれを読みこみ加算します。スレッド2ではそれを読み込み減算します。
シングルコアでは物理的に、本当の意味での同時アクセスはありえないので
意図した結果が得られないとしても、ハード的に不具合はないですよね。
仮にスレッド1ではreadのみ、スレッド2ではwriteのみだと何の問題もないはずです。

これがマルチコア環境だと、スレッド1がread, スレッド2がwriteのみだとしても
同メモリアドレスに各コアが本当の意味で同時アクセスしますよね。
こういうことはやってはいけないのでしょうか?

74 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:44:31 ]
いや、同時アクセスしてもハード的な問題は起きない
writeの結果がreadに反映されるかされないかの問題でしかない

75 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:26:02 ]
>>73
それが同じCPU内の別のコアなら、キャッシュ管理かどっかで調停するから問題ない。
それが違うCPUのコアなら、メモリ管理かどっかで調停(ry

76 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:35:00 ]
コア毎のキャッシュにヒットしなかったと仮定すると、
最終的に、競合するバスアクセスが発生するわけだが、
その時にはバスのアービタが調停する。


77 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:34:22 ]
>>74-76
ありがとうございます。
調停(アービトレーション?)というのは調べても詳しくは分からなかったのですが、
同時アクセスするような状況で排他処理をしてくれるということでしょうか



78 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:38:24 ]
ハード的な話なのでソフト的な排他処理とはちょっと違う希ガス。

79 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 02:06:51 ]
ハード屋の無知はおいておくとして、信用するなよ。

マルチコアとシングルコアの違いは、スケジューラを動かす数が
違うのが一番大きい。あるスレッド(プロセス)は、基本的に1つの
CPU上で動作する。

当然、複数のスレッド(プロセス)間の排他は必要だが、アプリ上
はたいして変わらない。マルチコアでは、アトミックな操作のための
バスを占有するような命令が追加されているだけ。

80 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:45:08 ]
>マルチコアとシングルコアの違いは、スケジューラを動かす数が 違うのが一番大きい。
誰もそんな話してないしw
>あるスレッド(プロセス)は、基本的に1つの CPU上で動作する。
間違ってるし

ロードバランスとか考え出すと頭が痛くなるが,まぁ
Read-Write-lock みたいなことをやってると思っとけば

81 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:33:08 ]
基本的にって言ってるから何でもあり。

82 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 18:46:05 ]
て言うかある一瞬を言ってるのか、スレッドの一生を言ってるのかわからんから
間違ってるか判断できない。

83 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 00:19:01 ]
突っ込み所が違うだろ。
>>73に対して>>74>>76が問題ないって言ってるのにそれを否定してるんだぞ。
メモリの同時アクセスは複数プロセスでも起こるので、すべてのメモリアクセスは
明示的にバスの排他命令を使用する必要があるな。

84 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 00:39:01 ]
>77はこれでも読んでみれ
ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA

85 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 00:49:09 ]
>>79 の書き込みは、肝心なところがちゃんと書いてないから
正しいとか間違ってるとか言うことはできない。

まあ、>83 の書き込みも似たようなものだが。

86 名前:デフォルトの名無しさん [2008/08/24(日) 23:25:42 ]
RT-Linuxでマルチスレッドで組んでいます。
スケジューリングポリシーはSCHED_FIFOです。

pthread_condを使った排他を考えているのですが、
pthrad_cond_wait()を複数スレッドで呼び出した後に
pthrad_cond_broadcast()を呼び出した時の動き出すスレッドの
順番がスレッドの優先度順になっていません。
(ちなみにsunのページにはブロック解除の順番は不定と書いてありました。)

そもそもやりたい事が
ttp://www.hanecci.com/pukiwiki/index.php?Programming%2FMultiThreading
の「リードライトロック」のような事なのですが、
優先度順に動き出させるようにするにはどうしたらいいですか?

よろしくおねがいします。

87 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 23:59:16 ]
写生してえ。



88 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 01:57:04 ]
だから、スケジューラの実装依存になるようなプログラムを組むなと
なんど言ったらわかるのだ・・・。マイナーバージョンが変わっても、
挙動かわるぞ。

89 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 02:19:03 ]
何のためのRT-Linux


90 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:28:31 ]
>>86
pthread_cond_waitに入るときに、クリティカルセクション内で
現在待ちに入っているスレッドの優先度をメモっておいて、
pthread_cond_broadcastで起きたときに、クリティカルセクション内で
自分より高い優先度のスレッドが待ちに入っているなら、
何もせずに再びpthread_cond_waitに入る、じゃだめなのかな。

必ずその優先度の高いスレッドも起こされるはず・・・だと思う。
やばいタイミングとかあるか・・・な?

91 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:48:00 ]
CPU稼働率落ちそうだな。

92 名前:86 [2008/08/25(月) 22:44:47 ]
解決した。
pthread_condとかつかわずに セマフォで普通に組めるのね。

ありがと。

>>87
うん

>>88、89
そこでヒントがほしかった><

>>90
簡単な仕組みにしたいっすね。

>>91
ですね

93 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:33:52 ]
簡単にCreateThreadできるようになるクラスとかないかな

94 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:43:39 ]
boost::threadとか?

95 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:11:50 ]
データ処理部分とHDDから読み込み&書き込み処理部分ってスレッド分けた方が効率上がると思うんですが、
HDDのIO部分自体は分けないで一つのスレッドでやった方が効率いいですよね?
2つの異なるHDDから読み込み&書き込みする場合はHDD毎にスレッド作った方が効率いいですよね?
間違ってたら指摘お願いしますm(_ _)m

96 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:21:44 ]
>>95
ドライバはカーネルが動かす。従って、CPUが複数(或いは複数コア)あるなら
ユーザアプリとは並列に動ける。おまけに、ディスク自体にもバッファがあるから普通は余り意識しない。
まして一般的にディスクの方が圧倒的に遅いから、HDD毎にスレッドを作るなんて事はしない。

97 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:23:45 ]
追記です。二つ目の質問は
「一つのHDDから複数のデータを読み書きするとき、データごとに別スレッドにはしないべきか」と言う意味です
宜しくお願いします



98 名前:デフォルトの名無しさん [2008/09/09(火) 15:33:43 ]
HDDは遅いから複数スレッドの方がいい
HDD1が終わるまで待っている時間が無駄

99 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:38:58 ]
早速回答ありがとうございます!
しかし>>96>>98の言っていることが逆に見えて混乱しています

たとえカーネルが実際のIO等を行ってるとしても、読み込み終わるまでアプリは待機しますよね?
IO毎にスレッドを分ければその間CPUはアイドル状態にならずに効率が上がるかと思うのですが・・・

しかし、同じHDDで読み書きするデータごとにスレッドを分けるのは流石にやりすぎですよね^^;

100 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:43:03 ]
>>99
>95はI/Oに限定した話じゃないの? I/Oしかやることがないならスレッド分けたって待つだけじゃん。
処理とI/Oを分けるかって話なら処理がI/Oに依存しないで済むなら分けておいたら? ってことになる。

101 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:47:51 ]
一番初めに
「データ処理部分とHDDから読み込み&書き込み処理部分ってスレッド分けた方が」
って書いてあるだろ

102 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:22:13 ]
>>100
ありがとうございます。処理とIOを分けたかったんです。
処理とIOは依存しないわけではないのですが、パイプライン式に順次並列処理しようかと思います。

103 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:33:02 ]
読みながら処理しながら書くの?
読んでから処理してから書くの?
読みながら処理してから書くの?


104 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:26:37 ]
こんな感じで実行予定です
以下同行は並列と見てください

HDD1からDATA1読み込み
HDD1からDATA2読み込み  DATA1の処理
HDD1からDATA3読み込み  DATA2の処理  HDD2にDATA1書き込み
HDD1からDATA4読み込み  DATA3の処理  HDD2にDATA2書き込み
                   DATA4の処理  HDD2にDATA3書き込み
                              HDD2にDATA4書き込み


105 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:46:11 ]
マルチスレッドなんて使わずに非同期入出力で

106 名前:デフォルトの名無しさん [2008/09/09(火) 18:30:45 ]
非同期でOSまかせが速い、効率いいとはいえない。
データをまとめて出力するなどキャッシュを作った方が速い。
10Kを一万回やったら非同期でも時間かかる

107 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 09:47:23 ]
読み込んだデータをクラスに展開しないといけないので、非同期読み込みだと
メモリを最悪倍近く無駄に食うような気がしたのでこの方法がいいかと思ったのですが・・・

また、細切れに読み込んでも連続したデータであればキャッシュは効くと聞いたことが
あるんですがそれも違うのでしょうか?



108 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 04:25:04 ]
先読みに頼るぐらいならまとめて読め

109 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:42:38 ]
>>107
win32なら、ファイルを開くときのオプションでキャッシュに連続の先読みを指示するオプションがある。
基本的にAPIの呼び出し回数を減らすのが速い

110 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:57:55 ]
並列動作で効率を高めるため、最適な数のスレッドを生成したいのですが
コア数を取得するAPIが見つからなくて困っています。API等では用意されていないのでしょうか

111 名前:デフォルトの名無しさん [2008/09/12(金) 16:07:37 ]
なんのことはない,Win32の GetSystemInfo() を叩けばいいらしい
SYSTEM_INFO構造体を受け取って
dwNumberOfProcessorsメンバーにコア数が入っているとのこと
gurizuri0505.halfmoon.jp/20080806/2423

112 名前:デフォルトの名無しさん [2008/09/12(金) 16:09:23 ]
www.usefullcode.net/2006/12/apios.html

113 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:48:59 ]
即レスさんくす!
無事取得できましたm(_ _)m

114 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 04:35:56 ]
タスクマネージャのパフォーマンスグラフみたいに、
コア毎の負荷(使用率)を知りたいのですが、
簡単に取得する方法はありますか?


115 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:40:30 ]
環境次第

116 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:59:05 ]
マルチスレッド用の効率的なQueueを書いてください

117 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:53:09 ]
状態変数の練習にはいいんじゃね



118 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:59:21 ]
lock free queue

119 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 12:28:10 ]
プライオリティキューを
マルチスレッド化したいです

120 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 15:09:44 ]
pthread_cond_wait()が遅くて
しょりがおいつかないときって
大体方法何かないですか
たすけて〜〜〜

121 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 15:32:57 ]
どうやって遅いって調べたんだ

つかwaitしてるようで実はポーリングになってるとかいうオチじゃなかろうな

122 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 09:07:18 ]
私たちはマルチスレッドですか?

123 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 09:19:12 ]
>>122
精子はマルチで卵子に向かいますが
卵子は基本的には一匹入ったらLockをかけるので
通常はシングルで動きます
でも、時々Lockに失敗して双子以上ができる場合があるので注意が必要です

124 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 09:53:22 ]
マルチスレッドと言うより、
イベントドリブンというか、割り込み駆動な感じだな。

125 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:27:29 ]
NMI最強

126 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 15:54:58 ]
今日のわたしはモード2なのよ
ttp://www.youtube.com/watch?v=gpzCBUwU_Ys


127 名前:デフォルトの名無しさん mailto:age [2008/10/05(日) 11:44:01 ]
複数スレッドのプログラムへのCPUコアの対応としては>>44とのことですが、
コア数を設定できるソフトの場合、4コアCPUなので4コアを設定したとしても
OSが状況に応じてそれより少ないコアで処理させてり、というようなことが
起こってしまうのでしょうか?



128 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:05:42 ]
>>127
ユーザープログラムを4コア設定にしようと
OSが割り当ててくれないかぎり無駄。

129 名前:127 mailto:sage [2008/10/05(日) 12:10:42 ]
>>128
なるほど・・・
いちおう4コアとか設定はできるものの、それは「4スレッド以上使うプログラムで実行しますよ」ということであって、
OSによりコアに手空きがあれば初めて実現することなんですね。
勉強になりました。
そうすると「このプログラムは2コアまで対応してるからCPUは2コアのものを購入」となるところを、余裕を見て
4コアCPUにしておく、という考え方が有効になるわけですね。
勉強になりました。
ありがとうございました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef