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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:19:27 ]
マルチスレッドプログラミングについて語るスレ

■前スレ
マルチスレッドプログラミング相談室 その7
pc12.2ch.net/test/read.cgi/tech/1215253576/

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

OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ
【OS】
【言語】
【実行環境】
【その他特記する事項】

162 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 09:48:32 ]
posix準拠のオーソドックスなやり方しかしない俺にはこのスレは不要なようだ
おまえら何言ってるかわかんねぇーしw

163 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:36:30 ]
>>162
自分からPOSIXスレッドとかに関連したネタをふればいいんじゃないかな?

まあ正直なところ、ここは相談室スレなんだから、あまりにもハードウェア寄りな専門知識が
必要な話題については、できれば「並列化について語る」スレで熱く語ってくれって感じはしてる。
あっちはハード(マルチプロセッサ/マルチコア)全然オケーなスレなんだから。

164 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 13:09:43 ]
単に自分の付いていけないレベルの話題を締め出したいだけに見える

165 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 13:35:03 ]
ということにしたいだけにも見える

166 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 21:17:55 ]
つーか俺はposix準拠な世界で生きてきたので。
おまえらよくposix非準拠な話題で盛り上がれるなーw

167 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 22:48:54 ]
>>166
CASやメモリバリアなどはpthreadライブラリの実装者にとっても
必須の知識だよ。

168 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:10:22 ]
>>167
利用者にとっては?

169 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 03:21:14 ]
POSIX厨としか言いようがない

170 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 08:47:16 ]
>>169
POSIX使うのが普通じゃないの?



171 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 13:13:35 ]
pthreadにはアトミック操作が定義されてないから、
単なるカウンタのインクリメントでも
いちいちロックしなきゃならんのが嫌だ。

172 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:37:47 ]
なんでPOSIXで厨なんだよ(´・ω・`)

173 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 02:28:34 ]
POSIXスレッド以外の話題ってだけで叩くなら完全に厨だろ

174 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 06:51:32 ]
他人を厨と決めつける人が厨に見える


175 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 08:03:36 ]
何でも鸚鵡返しすれば反論になると思ってるだろ

176 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 08:04:58 ]
baka

177 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 08:09:28 ]
pthread地獄 part 2
pc12.2ch.net/test/read.cgi/unix/1166620307/

ここへ行けばいいのに

178 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 03:19:26 ]
          /\              ┌┐            ┌┐       ___ ___
        / __ \       /\  ..||..  /\       ||    ___ \\ \
      / / .\ \     \  \ .||. /  / ┌──┘└──、\\  ̄  ̄
    / /     .\ \     \/ .||. \/   └──┐┌─ 、| |__|
  / / ┌──┐.\ \  ┌───┘└───┐      .||  ||
 ..\/   └┐┌┘  .\/ └───┐┌───┘     / /  ||
        ┌┘└┐          /\ .||. /\      / /   / /
        └┐┌┘        /  / .||. \  \   / /   / /
      ┌─┘└─┐     \/  ..||..  \/   \/    / /
      └────┘          └┘              \/

                                           ....、
....................--------、,           i~゙7   r‐ッ    !゙゙.!       ! !
: !―――;;;;;;''''''''ゝ ,,ノ゛    ._   / ./   .,! .,!    ! !  .,..............! ヽ..........-、
      | |./ /      .l、,`''-./ ./    ! !    | |   ――ーッ .iー''''''''i |
      | l'-‐゛        `゙ッ  .ゝ、   .| |    | ,!      ./ ./   ! !
     ../ .,!             /.,r'"\,/  .!ー′   ./ .,!     . / ./    | │
    .,./ ./         ,..‐" /            . / /     ./../     ./ .l゙
  .r'"./           ゝ/゛          : ,,-'゛./    .〈 /    .'|,゙,゙,,,, "
   .`゛                        ゙'''"

179 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 15:39:31 ]
その “全米” はグアム島を含むのでしょうか。

180 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:08:01 ]
グアム、どうなんだろ。州に昇格すればいいのに。まあ、しないだろうけど。



181 名前:デフォルトの名無しさん [2009/11/03(火) 00:02:53 ]
スレッドを終了させるときは_endthreadexじゃなく
そのままreturnでもいいのか?スタックの開放されない?

182 名前: ◆0uxK91AxII mailto:sage [2009/11/03(火) 00:28:01 ]
良い。
mallocで取ってきた領域をfreeしなくて良いのと同じくらいに。

スタックとやらは、_endthreadexとは無関係。

183 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:59:57 ]
freeしろよ

184 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 01:16:04 ]
スレッドに強くないのに書き込んでみる。

ttp://msdn.microsoft.com/ja-jp/library/hw264s73(VS.80).aspx
>ただし _endthread または _endthreadex は、_beginthread や _beginthreadex の
>パラメータとして渡されたルーチンからスレッドが戻ると自動的に呼び出されます。

ってことで、returnすれば問題ないかと。
どちらかというと

>_endthread と _endthreadex によって、C++ デストラクタはスレッドで保留状態になり、呼び出されません

なので、呼ばないほうが好ましいような。

185 名前: ◆0uxK91AxII mailto:sage [2009/11/03(火) 01:52:01 ]
182は無かった事にしてください。
んゆ。

186 名前:184 mailto:sage [2009/11/03(火) 14:42:55 ]
スレッドに強い人に補強して欲しいのだけど、それとも184の認識で問題なし?

187 名前: ◆0uxK91AxII mailto:sage [2009/11/03(火) 17:34:11 ]
Microsoft Visual Studio\VC98\CRT\SRC\THREADEX.C

んゆ。

188 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 17:55:09 ]
問題なし

189 名前:デフォルトの名無しさん [2009/11/03(火) 22:08:15 ]
スレッド識別子って何なんだ?
何に使うの?

190 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:25:48 ]
殺したり、止めたり。



191 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:43:06 ]
他スレッドの変数の中身知ることってできないかな?

192 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:55:11 ]
メモリ空間は共有しているので、アドレスがわかれば普通に参照できる。

193 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 12:32:06 ]
win32のインターロックをクリティカルセクションと
同じように使ったら早くて驚いた。

両者の内部的な違い・利点・欠点てなんですかね?

194 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:06:45 ]
そもそも用途が違うんじゃない?
インターロックは変数1個ぶんの更新しかできないでしょ?

インターロックを使ってクリティカルセクションと同様のものを作ることはできるだろうし、
クリティカルセクションを使ってインターロックと同様のものを作ることもできるだろうけど、
そういう話?

195 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:31:15 ]
インターロック一発で出来ることならインターロックで。


196 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:54:32 ]
win32のクリティカルセクションは衝突しなければインターロックと同じくらい早いんだなこれが

197 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:01:33 ]
いや倍くらいは遅いだろう。


198 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:15:02 ]
んだ。インターロックで済むならそれが数倍早い。

199 名前:193 mailto:sage [2009/11/05(木) 19:29:23 ]
今以下のクラスでクリティカルセクションと同じように扱ってテストしてるんだ。
class InterLock
{
private:
LONG m_Flag;
public:
void Enter()
{
while(InterlockedCompareExchange(&m_Flag,1,0)) Sleep(0);
}
void Leave()
{
InterlockedCompareExchange(&m_Flag,0,1);
}
public:
InterLock()
{
m_Flag = 0;
}
virtual ~InterLock()
{
}
};

200 名前:193 mailto:sage [2009/11/05(木) 19:30:08 ]
こっちはクリティカルセクション晩
class CriticalSection
{
private:
CRITICAL_SECTION cs;
public:
void Enter()
{
EnterCriticalSection(&cs);
}
void Leave()
{
LeaveCriticalSection(&cs);
}
public:
CriticalSection()
{
InitializeCriticalSection(&cs);
}
virtual ~CriticalSection()
{
DeleteCriticalSection(&cs);
}
};



201 名前:193 mailto:sage [2009/11/05(木) 19:43:57 ]
//グローバル変数
ロッククラス g_Lock;
int g_i = 0;

// 三つのスレッドで以下を走らせる
void Run()
{
for(int i=0; i<10000000; i++)
{
g_Lock.Enter();
g_i++;
g_Lock.Leave();
}
}

int main()
{
//3つのスレッドでRun()を走らせ、スレッド終了まで待機
(...省略)
cout << g_i << endl;
cout << time.result() << endl;
return 0;
}

結果
クリティカルセクション 35秒 g_i = 30000000
インターロック 5.5秒 g_i = 30000000
ロッククラス無し 0.16秒 g_i = 21203536(整合性無し)

環境 OS:win xp CPU:core2duo1.8G メモリ:3G

202 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 20:42:07 ]
ソースまともに見てないけど、CSがもしインライン化されないなら性能的には勝てない
だろうしなぁ
まぁ、asm読めば全て分かるだろうけど

203 名前: ◆0uxK91AxII mailto:sage [2009/11/05(木) 23:23:50 ]
TryEnterCriticalSection ~ Sleepだとどうなるの、っと。
threadをCPUと1:1にbindしたらどうなるの、っと。
timesliceを変えたらどうなるの、っと。

結果は書かない方が良い。

204 名前:193 mailto:sage [2009/11/06(金) 07:01:38 ]
>TryEnterCriticalSection ~ Sleepだとどうなるの、っと。
これだけやってみた。
上記のテストだとインターロックとの差は0.5秒内、
つまりほとんど差がなくなった

205 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:00:12 ]
プロセッサ数が2以上ならSpinWaitにしたらどうなる?
あとインターロックのIncrementでダイレクトアップデートにしたらどうなる?


206 名前: ◆0uxK91AxII mailto:sage [2009/11/06(金) 20:26:47 ]
違うネタだけど。
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#define THREADS 64
#define LOOPS 123456789
struct SData { LARGE_INTEGER m_cntBegin; LARGE_INTEGER m_cntEnd;};
DWORD WINAPI thread(LPVOID pArg);
int __cdecl cmpForSort(const void *pArg0, const void *pArg1);
int _tmain()
{
int i; HANDLE ahThread[THREADS]; SData aData[THREADS];
LARGE_INTEGER diff;
for (i=0; i<THREADS; i++)
ahThread[i] = CreateThread(NULL, 0, thread, &aData[i], 0, NULL);
WaitForMultipleObjects(THREADS, ahThread, TRUE, INFINITE);
qsort(aData, THREADS, sizeof SData, cmpForSort);
for (i=0; i<THREADS; i++)
{
CloseHandle(ahThread[i]);
diff.QuadPart = 0<i? aData[i].m_cntBegin.QuadPart - aData[i-1].m_cntBegin.QuadPart: 0;
_tprintf(_T("thread: %d, diffBegin: %I64d, clock: %I64d\n"), i, diff.QuadPart, aData[i].m_cntEnd.QuadPart-aData[i].m_cntBegin.QuadPart);
}
return 0;
}

207 名前: ◆0uxK91AxII mailto:sage [2009/11/06(金) 20:28:49 ]
DWORD WINAPI thread(LPVOID pArg)
{
SData *pData; DWORD value; float sum;
pData = (SData *)pArg;
QueryPerformanceCounter(&pData->m_cntBegin);
__asm
{
mov ecx, LOOPS
fldz
LOOP_:
fadd QWORD PTR value
dec ecx
jnz LOOP_
fstp DWORD PTR sum
}
QueryPerformanceCounter(&pData->m_cntEnd);
return 0;
}
int __cdecl cmpForSort(const void *pArg0, const void *pArg1)
{
LARGE_INTEGER diff;
diff.QuadPart = ((SData *)pArg0)->m_cntBegin.QuadPart - ((SData *)pArg1)->m_cntBegin.QuadPart;
if (0 > diff.QuadPart) return -1;
if (0 < diff.QuadPart) return 1;
return 0;
}

208 名前: ◆0uxK91AxII mailto:sage [2009/11/06(金) 20:37:44 ]
同じ処理なのに所要時間がブレるとか、
先に開始したthreadよりも、後から開始した方が早く処理を終えるとか。
そういうのが起こりうる。

computer gameでmulti threadの利用に消極的な理由の一つだと思う。

209 名前:193 mailto:sage [2009/11/06(金) 23:12:33 ]
>>205
>インターロックのIncrementでダイレクトアップデートにしたらどうなる?
1.3秒だった

>SpinWait
これC#じゃん

210 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:40:37 ]
スピン待機はC#限定じゃなく一般的な概念だ



211 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:40:03 ]
スピンすると余計遅くなりそうだな。
一般的な使用状況に比べて処理と競合がタイトすぎるせいかな多分。


212 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:45:49 ]
ああつまり3スレッド同時じゃなくて1スレッドで3回繰り返した方が速いとかっていう状態ね。


213 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:33:40 ]
あーいやいや、これだとちょっと書き方がおかしいな…まあいいや


214 名前:193 mailto:sage [2009/11/07(土) 19:49:07 ]
スピンロックは信頼性がないという話を聞いたような。

さて上記のベンチですが、1スレッドで3回繰り返したほうがずっと早いです。
衝突したときに別の処理をせずに待つ場合はシングルスレッドにした方がいいかも。


215 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:02:47 ]
スピンロックに信頼性が無かったらどうすんだよw
全然仕組みとか分かってなくて使ってる匂いがぷんぷんするな

216 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:03:53 ]
スピンロックとスピンウェイトは基本的に別物です。

217 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:12:02 ]
それと信頼性に何の関係が?


218 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:55:49 ]
スピン待ちの話をされてスピンロックどうこうと返すのがおかしい

219 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:06:21 ]
上の人じゃないけど、スピンロックはスピンウエイトを使ってやってるかとおもてたよ(´・ω・`)

220 名前: ◆0uxK91AxII mailto:sage [2009/11/08(日) 12:45:22 ]
spinlockでlockできる保証は無いね。
偶然上手く動いているだけ。



221 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:48:53 ]
◆0uxK91AxIIで検索したら、NGしてもいいくらいトンチンカンな奴だな

222 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 14:27:27 ]
トリップ付けるような奴だもの。

223 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:06:21 ]
トンチンカンなんて久々に見た
おやつあげないわよ


224 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 09:14:41 ]
抜作先生の方がまだ新しいな。

225 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 00:01:41 ]
マルチスレッド対応の基数木のアルゴリズムって
どうやって記述すればいいのでしょうか?

CかC++で探しています。

226 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 22:31:16 ]
読み込みと書き込みが1スレッドずつの場合でもメモリ破壊って起きるのでしょうか?

たとえば、ある変数をメインスレッドで読み込み続け、
複数のサブスレッドで、クリティカルセクションを用い、書き込むといった場合です

227 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 22:39:31 ]
>>226
とりあえず破壊読み出しメモリだと死ぬよね。

228 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 23:29:29 ]
>>226
まずメモリ破壊を定義してもらおうか


229 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 01:41:11 ]
パソコンのネジ外して開けると見えてくるメモリの部分をハンマーで叩く

230 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 01:42:27 ]
ハードウェア的な話題もするんか



231 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 02:21:03 ]
宇宙線による確率的なビット反転は防ぎようがない

232 名前:226 mailto:sage [2009/12/23(水) 10:10:00 ]
データが飛ぶという意味でのメモリ破壊です
ハード的にどのように動作しているのか分からないのですが
同アドレスに同時にアクセスされることによってメモリ破壊が起きるのでしょうか?

233 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 10:20:05 ]
書き込みをクリティカルセクションで同期して、クリティカルセクションを抜けたところで可視性が保証されたとしても、
読む方が書き込み中にその変数を見る可能性があるなら、少なくとも意図しない値を読む可能性はあるんじゃない?
(+不変な変数見てると思われるかもね)

要求次第だけど、
この手のポーリングするやつは、次に読めればいいからその瞬間のスナップショットで十分だと思うので、
Atomicな操作用のAPI使うとか、書き込みがAtomicであることが保証されるならvolatileだけでもいいかも。

その変数の読み書きだけ同期とっても、読んでる間の書き込みは防げても、
読み込みが終わってクリティカルセクション抜けたあと、それで処理しようと思ったら
もう書き換わってることもあるし。
読んだ値の処理が終わるまで書き込ませないなら、話は別だけど。

234 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 11:15:37 ]
昔使ったタイマ LSI でラッチ→lo-read→hi-readって
いう約束ごとのあるやつがあったな。hi-readでラッチ
が外れる奴。word-read 命令が使えるかどうかは CPU
次第。

235 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 12:47:17 ]
>>226
ハードや操作による。
つーか、まずは「アトミックな操作」という概念をどっかで調べとけ。

例えば、x86のCPUなんかだと、どういう操作がアトミックかはIntelが規定している。
アトミックな書き込みなら、別のコアからの読み込みが割り込む可能性は無い。逆に
アトミックでない書き込みなら、例えば半分くらい書き込んだところで別のコアが
読み込む可能性があるということ。
x86なら、厳密な規定はIntelの英語版サイトに落ちてる。32bitアラインドなreadや
writeは確実にアトミックだ。相当古いx86以外はキャッシュアラインドなら大丈夫。
read-modify-writeはLOCKプリフィクスが無い限りアトミックではないが、xchg
命令はLOCK#が自動的にアサートされるのでアトミックだ。
まぁ、アセンブラを直接叩くんじゃなければ、イントリンシック命令を調べておけば
十分だが、その裏でどういうCPUの動きをしているかは理解しといた方がいい。

つーか、低水準の話と高水準の話で全然違いすぎるんだよな。俺はどっちの話でも
構わんけど、分けた方がいいのか?

236 名前:226 mailto:sage [2009/12/23(水) 12:53:08 ]
ありがとうございます
もっと勉強します

237 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:31:19 ]
>>232
そんな事は起きないようにハードウェアが作られてる
物理的なメモリへのアクセス経路は1個しかないから、同じアドレスに同時にアクセス
なんて事は出来ない

命令が書いた順に実行されるかとか、他のコアやスレッド云々は >>235 の通り

238 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:31:47 ]
クリティカルセクションを用いって書いてあるから、なんとなくWindowsかと思ってた。

239 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:32:15 ]
>>235
ここはム板だから低水準の話はついていけないと思う

240 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:49:38 ]
>>237
> 物理的なメモリへのアクセス経路は1個しかないから、同じアドレスに同時にアクセス
> なんて事は出来ない

いつの時代の人?



241 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:00:02 ]
>>239
いやそれは無い

242 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:00:28 ]
ん?今はどこが違うの?


243 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:04:04 ]
>>235
x86は巨視的には古典的設計だからまだ理解しやすいけど、PPCなんかだとリオーダー
とかが剥き出しになってくるからさらにごちゃごちゃするんだよな

244 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:06:45 ]
そこでeioioですよ!

245 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:07:20 ]
間違えた、eieioだった
イーアイイーアイオー!

246 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:28:55 ]
エイッエイッオッー

247 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:32:01 ]
この辺の話題が体系的に書かれてる教科書が欲しい

248 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:41:39 ]
開拓が進行中のジャンルだから、書いたそばから陳腐化しそうでなかなか難しいかも
しれないな

249 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:09:39 ]
何をもって高性能とするかをはっきりさせたいな
シングルコア100%アイドル3コアでできることを4コア25%ずつで処理することに意味はあるの?

250 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:12:36 ]
>>249
に追記
並列処理の有利はわかるけど、これからは直列処理も並列化しようとしてるんでしょ
そんなの意味ないよねという話



251 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:50:00 ]
1コア100%3コア0%ってCPUがボトルネックになってんじゃねーの

252 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:50:26 ]
何を言ってるの?


253 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:19:08 ]
>>249は軽くエスパーが日本語に翻訳しないと分かりづらい

4スレッドにしたら全部25%になっちゃうような処理までマルチスレッドにする
意味あんの、って言いたいんだろうし、だからCPU屋は2コアや4コアで現状維持
しながら別の進化の方向性を探ってるのも事実
だがそもそも、そういう微妙なケースにまで頑張って適用しようぜMTマンセー、
というようなスレではないので、そんな的外れなこと言われても一瞬何の話だか
分からんし、今更何をとしか言いようがない

254 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:28:43 ]
>>253
日本語でおk

255 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:35:30 ]
>>253
余ってるCPUに仕事振る余地のない処理なら
それでいいんじゃね?


256 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 21:39:14 ]
>>249の問題提起自体が微妙
アムダールの法則くらいで十分じゃねーの?

257 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 18:49:32 ]
そもそも並列化できない処理まで並列化しようとしてるなんて話は聞いたこともない。
誰が言ったんだそんなこと。


258 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 21:49:55 ]
>>249が言ってるな

259 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 03:00:47 ]
質問させてください。
【OS】 UNIX/LINUX
【言語】 C言語
【実行環境】 gcc
【その他特記する事項】
メインスレッドからn個のスレッドを作成->全ての終了を待つという場合、
int i;
pthread_t id[n];
void* res[n];
for (i=0; i<n; i++)  pthread_create(&id[i], NULL, funcptr, arg);
for (i=0; i<n; i++)  pthread_join(id[i], &res[i]);
こんな感じで大丈夫でしょうか?
それとWindowsにあるWaitFor〜みたいに複数待つというのは無いのでしょうか?

260 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 03:18:30 ]
>>259
>WindowsにあるWaitFor〜みたいに複数待つ

developers.sun.com/solaris/articles/event_completion.html



261 名前:デフォルトの名無しさん [2010/01/26(火) 00:12:16 ]
スレッドを終了させないままアプリを閉じた場合
やっぱメモリリークとか起きるの?


262 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 00:20:29 ]
環境を想定しないとなんともいえない。






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

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

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