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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2005/11/03(木) 11:23:05 ]
マルチスレッドプログラミングについて語るスレ。
OS・言語・環境は問わないが、それゆえ明記すべし。

その1 pc3.2ch.net/test/read.cgi/tech/997345868/
その2 pc5.2ch.net/test/read.cgi/tech/1037636153/
その3 pc8.2ch.net/test/read.cgi/tech/1098268137/

357 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 21:31:45 ]
じゃあ、なんでそんな設計にならざるを得なかったのか、説明してみればいいじゃない。
メモリ参照だけで済むアルゴリズムを誰かが教えてくれるんじゃない?

358 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 22:06:40 ]
writeで例外起こすようにしてcopy-on-writeだ

359 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 02:58:53 ]
設計したのは赤の他人。
ワタシはメンテ担当(涙)

360 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 17:25:34 ]
>>359
その赤の他人よりも上手に設計できたとおもう?

361 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 00:01:14 ]
何このウスラ馬鹿な突っ込み

362 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 01:05:49 ]
>>359
設計思想もわからん個所を、色々チューニングしようとしてるの?

悪いことは言わないから「やめとき」。

363 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 01:08:10 ]
仕事じゃしょうがないよな。

364 名前:デフォルトの名無しさん [2006/03/03(金) 07:10:31 ]
UNIXでC++なんですが、ttp://d.hatena.ne.jp/yupo5656/20041011/p3 ここに載っている、
スレッドローカルストレージを使ったシングルトンの実装って安全でしょうか?
だいたいこんな感じになってます。

public:
static T& getInstance(void) {
static __thread T* tsd_instance = 0;
if (!tsd_instance) {
tsd_instance = getInstance_();
}
return *tsd_instance;
}
private:
static T* getInstance_(void) {
boost::mutex::scoped_lock lk(m);
if (!instance) {
instance = new T;
}
return instance;
}


365 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 12:00:38 ]
ISO C++の範囲内でポータブルな実装はないんだ。
>>291を読め。




366 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 23:44:47 ]
>>364
安全ですよ。
getInstance_(void) が既に安全なわけで、
tsd_instance の方は覚えとくだけで、
かつ単一スレッドからしか参照されないので。

メモリモデルの問題については、
たぶんscoped_lock の解放でメモリバリアも処理されるんでしょう。
(pthread のドキュメント呼んでないのであてずっぽう)

367 名前:デフォルトの名無しさん mailto:sage [2006/03/04(土) 22:28:46 ]
>365
364はDCL関係ないじゃん

368 名前:デフォルトの名無しさん mailto:sage [2006/03/04(土) 22:52:17 ]
>>366
POSIXではmutexの開放はメモリバリア。


369 名前:デフォルトの名無しさん [2006/03/05(日) 00:20:02 ]
>>364 例の www.nwcpp.org/Downloads/2004/DCLP_notes.pdf
の最後のほうに
> Replace global singletons with per-thread singletons:
> - Each can use thread-local storage.
> -- Threading concerns during initialization thus vanish.
> - But now there are multiple "singletons."
と書いてあって、TLSを364のようには使ってないのが気になります。

一方、
www.cs.umd.edu/~pugh/java/memoryModel/archive/0670.html
でDoug Leaさんが364方式のTLSの使い方に文句を言っていない(条件
付きながら)ので大丈夫な気もします。まぁ、かなり昔のML投稿ですけど
ね・・。

さて真相は?

370 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 16:07:01 ]
>>340
普通の卵は比較的簡単に立つよな。表面に凹凸があるから。産みたてほど立ち易い。
・・・コロンブスは卵をツルツルに磨き上げていたに違いない。

371 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 17:35:06 ]
>>370
まあまあ。
コロンブスもギャグで言っただけなんだから許してやってくれ。

372 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 19:33:03 ]
後世の作り話ですから。
まあ>>340は底抜けの馬鹿だけど。

373 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 14:35:11 ]
ゆで卵にして高速で回せば立つよ。
まあ>>372は底抜けの馬鹿だけど。

374 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 14:57:53 ]
盛り上がっているところ、横から突っ込んでスマンけど。

生卵を立てるには塩をごく少量盛って、その上に立てて、横から
息をゆっくり吹きかけて塩を飛ばすといいという話を聞いた。

とかいう本当にどうでもいい話をマルチスレッドスレでする
自分は底抜けの馬鹿ですw


375 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 19:27:05 ]
つまり塩スレッドに卵スレッドをロックさせれば桶?



376 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 10:03:12 ]
卵スレッド発見

377 名前:デフォルトの名無しさん [2006/03/08(水) 20:55:31 ]
つまらんよ >>369-376

378 名前:デフォルトの名無しさん mailto:age [2006/03/08(水) 21:34:40 ]
君ほどでも

379 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:26:59 ]
ゆで卵の殻を剥かずに塩をかけるなんて、底ぬけの馬鹿ですね

380 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 03:03:29 ]
観光地のゆで卵は全部そうなってるよ

381 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 03:09:09 ]
>>379
卵殻はNa+イオンもCl-イオンも透過するのでちゃんと卵に塩味がつきます。
溶けさえすれば。

382 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 15:12:11 ]
※注意: このスレはこの卵ネタで1000まで引っ張る覚悟です

383 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 15:22:01 ]
たまごが立つという状態を定義してください。

384 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 16:21:34 ]
ブスの卵

385 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 17:20:48 ]
>>383
案1:
水平方向の任意の角度から卵を投影したときに、水平方向のスパンよりも鉛直方向のスパンの方が長い状態。
ただし卵が他の物体と接することができるのは下部のごくせまい部分のみとする(←うまい定義できないなこれ)



386 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 20:48:52 ]
ポテンシャルの極大点。

387 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 21:13:15 ]
あ、あんたなんかにたたれてもうれしくないんだからねっ!

388 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:28:56 ]
>>383
おまいはコンピュータか? んなもん定義しないでも分かるだろ

389 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 03:03:47 ]
クララが立った、と言う状態を定義してください。


390 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 03:04:39 ]
精神的な自立

391 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 03:21:15 ]
それで泣ける、という状態を定義してください。

392 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 08:40:40 ]
クララが勃った、と言う状態を定義してください。

393 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 18:55:33 ]
クララが勃った
クララは女である
∴よって勃ったのは乳首である

394 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 19:03:44 ]
class clitoris extends electiliable {

395 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 11:42:52 ]
>>394
なんだ、選挙にでも出るんか?













…それを言うならerectibleだろ。



396 名前:デフォルトの名無しさん [2006/03/12(日) 16:25:47 ]
Win32
Administrator権限で実行されてるプロセスからスレッドを起こすとき、
スレッドそれぞれに異なるユーザー権限を設定することは可能?
プロセスごとならできるんだが。もし可能ならAPI名などヒントを頼む。

397 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:54:30 ]
インパーソネーションとかいうんだっけ?
ImpersonateLoggedOnUserとか。
まー、RevertToSelfとか呼ばれると、元に戻るけどね。

398 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 21:06:38 ]
>>397
ありがd。
まだ試せてないが、MSDNの説明から目的に適うAPIのよう。

399 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 14:41:37 ]
なぁなぁ、
class Job extends Thread {
     public void run() {}
}

class MyJob extends Job {
     public void run() {}
}
ってあったらMyJobのrun()がJobのrun()をオーバーライドするんで
Jobのrun()に書いてある定義とか全部無視されちゃうよね?
ちゅーか、Jobのrun()の一行目に
System.out.println("Hello? Hello? Can you read me?");//never displayed
と書いても表示されないから間違いない。
でも、どうやったら両方のrun()とも動かすこと出来るんだろ?

400 名前:デフォルトの名無しさん [2006/03/15(水) 14:42:42 ]
一応ageとく。

401 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 14:54:45 ]
>>399
1つのスレッドで順番に動かしたいのか?
MyJob.run() と Job.run() を別のスレッドで動かしたいのか?
MyJob と Job のインスタンスをそれぞれ作ったらいけないのか?



402 名前:デフォルトの名無しさん [2006/03/15(水) 15:48:21 ]
>>401
ありがと。
二番目の「別のスレッドで動かしたい」かな。
run()直接アクセスするとあかんのよね、.startで始めないと?
どうしようかな?

403 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 16:35:55 ]
>>402
その手法が可能かどうかの前に、やろうとしていることに対して
もっと単純な方法や、別の解法が無いか検討したらいいんじゃ
ないかな。

ちょっと言語(Java?)の使い方から外れているみたいので、
本当にやりたいことが妥当かどうか見極めた方がいいと思う。

404 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 22:37:56 ]
>>399
super.run();

405 名前:デフォルトの名無しさん [2006/03/16(木) 09:59:17 ]
>>403
確かにそうだったかもしれん。ありがと。

>>404
いや、直接run()にアクセスするのは禁(ry



406 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 14:36:26 ]
Linux  2.4.31-0vl1.8smp + glibc-2.3.3-3vl1.3

pthread (linuxthread) プログラムでたまーに(でも確実に) seg fault してしまいます。
該当箇所は
 pthread_mutex_unlock(&mutex_sleep);
という処理で、mutex_sleep はグローバル。core dump に聞いてみたらこんな返事が。

Program terminated with signal 11, Segmentation fault.
#0  0x080551c7 in __pthread_alt_unlock (lock=0x80cb548) at spinlock.c:600
      } else if ((prio = p_node->thr->p_priority) >= maxprio) {
(gdb) bt
#0  0x080551c7 in __pthread_alt_unlock (lock=0x80cb548) at spinlock.c:600
#1  0x08051fc9 in __pthread_mutex_unlock (mutex=0x80cb538) at mutex.c:199
#2  0x0804e3cc in send_proc (arg=0xc) at send_proc.c:112
#3  0x08051709 in pthread_start_thread (arg=0xbdbffbe0) at manager.c:309

何か情報ありますか?

407 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 20:44:16 ]
mutexがすでに死んでるとか?

408 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 22:30:14 ]
Windows Threadについて質問です。擬似コードですが、
Thread[] threads = getAllThread();
foreach (Thread t; threads) {
t.suspend();
}
このような全てのスレッドを止めるためのループがあるとします。
このループ中では、既に止められているスレッドと、
これから止められる予定のスレッドがあると思うのですが、
これから止められる予定スレッドが、既に止めたスレッドを再開(resume)するため、
このループでは全てのスレッドを止められない、ということは起こりえるのでしょうか?


409 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 22:36:16 ]
>>408
起こりうるでしょうね。
避けたいのならばまず自分の優先順位をトテモ高くして、
その後ループに入れば良いと思います。

先方のスレッドも優先順位を上げている恐れがあるのならば
完全ではありませんが。

410 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 22:36:36 ]
知らね。

だって、普通そんな造りにしないもん。
普通は、終了しろ、っていう合図を各スレッドに送って
自主的に終了なり中断なりするのを待つだけだから。

411 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 22:37:03 ]
起こりえる。
おまけにこれから止めようとするスレッドが新たにスレッドを作るかもしれない。
全スレッドで、「スレッドマネージ用ミューテックス」などを使用すればいいんでない?

412 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 22:39:04 ]
他のスレッドを suspend するってのはまず間違いなく設計ミス。
C のランタイムとか Windows に用意されているいろんな dll の
内部まで良く知っていて、何か大事なものの所有権を持ったまま
suspend されちゃったりすることはないと確信を持っているなら
別だけど。

413 名前:408 mailto:sage [2006/03/16(木) 22:46:12 ]
どうも。
実は、これのpause版とresume版がD言語の標準ライブラリの中にあって、
GCを呼ぶ前にそれでスレッド止めて、後に再開ようとしているみたいなのですけど、
それのへんでアプリケーション側で実装しているスレッドの同期が変になるみたいです。
安心できませんが、安心しました。


414 名前:408 mailto:sage [2006/03/16(木) 22:52:58 ]
スレッドを止める仕様はどうしようもないのですが、
とりあえずは、全てを止めるループ中(pauseAll)に
pause()、resume()とstart()が実行されないように排他とと
全てを再開(resumeAll)中に、resume()が実行されないように
排他したら大丈夫ということでしょうか?


415 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 23:01:54 ]
>>414
GC 側が単純なメモリ操作などだけで、
他の処理で使っている(かもしれない)セマフォやミューテックスなどの
所有権なしで実行できるとするなら、問題ないはず。

例えば(MSのドキュメントを信用するなら)Windows API の OutputDebugString は、
内部で他のスレッドを全て Suspend した上でデバッグメッセージの送信を行い、
そののち Resume する、と同様の処理を行っているようです。

AP側のスレッドが変になるのはAP(or Dの何か他のライブラリ)のバグではないでしょうか。



416 名前:408 mailto:sagee [2006/03/16(木) 23:28:41 ]
>>415
resumeThreadの戻りを見ながら、他スレッドのsuspend待ちをしている箇所があるので、
それが、排他されていないresumeAll中に走ると、
GCが止めてこれから再開する予定のスレッドを、
"アプリケーションが思っている理由"でsuspendしたのだと
勘違いして変になるのだと思っています。


417 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 06:51:35 ]
>>407
ありがとうございます。
pthread_mutex_destroy は呼んでいないので生きていると思っていたのですが、どうやら
syslog(3) が関係しているようです。別の core dump に聞いてみたら syslog 関数で死んで
いるケースが見つかり、付近の syslog(3) をはずしたら seg fault することはなくなりました。

syslog(3) と pthread (linuxthread) は混ぜるな危険とかいう話があるんでしょうか。
とりあえず syslog を自前で用意することにしてみます。

418 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 07:20:23 ]
その環境ではsyslog(3)はMT-Safeじゃないのに、排他してないだけとか

419 名前:http://www.vector.co.jp/soft/win95/util/se072729.html [2006/03/18(土) 19:49:50 ]
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?



420 名前:デフォルトの名無しさん [2006/03/28(火) 00:13:15 ]
こんな問題助けてください。
I/Oバウンドな処理をする処理プログラムが2個
CPUバウンドな処理をするプログラムが1個

それぞれCPUは85〜95%占有するほど負荷が大きいです。
またそれぞれI/O処理は多重スレッドはなく2つの独立した
スレッドプログラムです。

Xeon 64bit x2 (64bitSMPカーネル+ HTTでCPU4個)
Xeon 32bit x2 (32bitSMPカーネル+ HTTでCPU4個)

Opteron 252 x 4(64bitSMPカーネル)
Opteron 252 x 4(32bitSMPカーネル)

いずれの場合も、CPUを占有したいと考えるならばcpu_affinityを
ハードウェア的に割り当てるべきなのでしょうか。
それともカーネルのSMP処理に任せるべきなのでしょうか。

421 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 06:09:38 ]
page outないくらいメモリが十分にあると考えると、
(OSによってはI/Oキャッシュがメモリを食い潰してしまいますが)
I/Oバウンドな処理をするプログラムにCPU割り当てる意味ないでしょ。

けど、
> それぞれCPUは85〜95%占有するほど負荷が大きいです。
で「I/Oバウンド」なの?

それからマルチスレッドじゃないw

422 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 12:47:04 ]
>>420
CPU占有を占有したいなら、邪魔しに来る恐れのあるほかのプロセスは
どれか他のCPUに割り当てるべき。

CPUを占有することの利点は、
・他のCPUでの処理の邪魔をしない
・各CPUが独立した2次キャッシュを持っているとき、キャッシュの汚染に
よるパフォーマンス低下を避けられる(かもしれない)
の2つくらい。

カーネルに任せるべきかどうかはなんともいえない。
プログラムの性格にもよるし、カーネルのスケジューラーの実装にもよる。

423 名前:420ではない mailto:sage [2006/03/29(水) 00:15:05 ]
ぶっちゃけ聞きたいんだが、
「cpu_affinityをハードウェア的に割り当てる」
って、現在存在するOSの中でどれよ?

424 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 15:54:42 ]
C++で質問ぬ
beginthreadexで作ったスレッド
exitthreadexしないで スレッド関数return で終了して
CloseHandleしても問題ないですか?

サンプルで exitthreadをreturn の前に呼んでるのと
呼んでないの
があったので



425 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 16:29:21 ]
>>424
寧ろ、exitthreadするとC++のデストラクタが走らないので問題になりがち。
極力returnするべき。



426 名前:デフォルトの名無しさん [2006/04/06(木) 01:56:06 ]
世はSPEでプログラミングしたいのじゃ

427 名前:デフォルトの名無しさん mailto:sage [2006/04/06(木) 13:02:49 ]
>>423
つ z/OS

428 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 00:01:57 ]
世界で始めてデッドロックを実際に経験した人って誰だろう。
あまりにもの恐ろしさに震え上がったことだろう。

429 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 21:33:59 ]


430 名前:デフォルトの名無しさん [2006/05/06(土) 22:23:42 ]
哲学者よフォークを取れ!!

431 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:33:04 ]
先生、フォークが足りません!!

432 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:41:15 ]
フォークを取ってどうすんだよw

433 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:46:41 ]
通じてないのかさらに深い洞察なのか…


434 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:47:34 ]
そうかパスタを取れか!!


435 名前:デフォルトの名無しさん [2006/05/06(土) 23:50:03 ]
>>434
てめー、すました顔してないで早くフォークよこせよ



436 名前:デフォルトの名無しさん [2006/05/06(土) 23:54:39 ]
まず全てのフォークをいったんテーブルに戻して、
そして...



















哲学者よフォークを取れ!!

437 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:55:20 ]
すまん、記憶違いだったら悪いんだが。
哲学者よときたら「箸をとれ」じゃなかったか?

438 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:58:02 ]
>>432
哲学者の食事問題を知らない奴キター

439 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 23:59:11 ]
>>437
ヒント:哲学者は日本人ではない

440 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 00:00:54 ]
ヒント:ダイクストラ

441 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 00:10:23 ]
哲学者よ

死ぬくらいなら手づかみで食え


442 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 00:11:25 ]
哲学者はきわめて明確な論理で行動するため、
臨機応変などという言葉は通用しません。


443 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 00:17:27 ]
哲学者は、野蛮では無く極めて理知的に出来ております。

444 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 01:26:53 ]
Dining Philosophers Problem は設定がシュール過ぎて
授業中に笑い出しそうになった

445 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 04:53:31 ]
シュレディンガーが猫を題材にしたのと通じるものがあるな



446 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 09:56:09 ]
お前なーやめろよ
話の流れから

シュレディンガーが猫を食材にしたのと通じるものがあるな

と読んじゃったじゃないか
まぁ、たいして違いはないが

447 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 13:34:52 ]
哲学者よ、明日はパスタにしよう。うん、パスタ。

448 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 21:18:36 ]
哲学者は手掴みで食べないものなのですか?

449 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 21:22:19 ]
哲学者はそんなはしたないまねはしません。
しかし決して人に譲ることもしません。


450 名前:デフォルトの名無しさん [2006/05/08(月) 00:23:38 ]
哲学者よデスマーチから逃げれ!!

451 名前:デフォルトの名無しさん [2006/05/08(月) 09:39:33 ]
age

452 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 20:31:01 ]
Cでスレッド固有のグローバル変数みたいなものって使えないかな
ほぼ全ての関数でスレッドごとに値の違う変数使ってるんで
毎回引数に加えるのが面倒になってきた

453 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 20:48:51 ]
処理系固有でTLSなどがあるとは思うが。

454 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 22:34:47 ]
>>453
サンクス。しらんかった

455 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 00:58:57 ]
gccだと、

__thread int i;

とか。



456 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 01:26:42 ]
調べました
pthreadだとpthread_key_create()とかですね
__threadの方が扱いやすいけどポータビリティとしてはどうなんだろう
gcc依存でも別に困りはしないんですけどw
何はともあれありがとうございました〜

457 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 08:23:30 ]
ポータビリティが気になるなら APR とか使うのは?

apr.apache.org/docs/apr/group__apr__thread__proc.html#ga23






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

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

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