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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:35:32 ]
マルチスレッドプログラミングについて語るスレ。

その1 pc3.2ch.net/tech/kako/997/997345868.html
その2 pc5.2ch.net/test/read.cgi/tech/1037636153/
その3 pc8.2ch.net/test/read.cgi/tech/1098268137/
その4 pc8.2ch.net/test/read.cgi/tech/1130984585/
その5 pc11.2ch.net/test/read.cgi/tech/1157814833/

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

【OS】

【言語】

【実行環境】

【その他突起する事項】

231 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:15:43 ]
>>229
複数のCPUが同時にatomic_incを実行すると破綻するから


232 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:18:14 ]
そんなのはアトミックじゃねぇ

233 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:19:53 ]
>>231
その atomic_inc はアトミックじゃないのかい?

234 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:26:06 ]
っSMP

235 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:27:42 ]
>>232-233
そういうCPUもあるし、そうでないCPUもある。

236 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:35:39 ]
そうでないCPUでは、それはただの x++ とどう違うの?

237 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:47:52 ]
>>236
横から。わたしもよくわかってないが
1.コンパイラやlibcが提供するatomic_inc/dec関数だけでは、単一CPUでのアトミックな演算しか保証されない
2.適切な命令(バリア)と一緒に使えば、複数のCPUを相手にatomicなinc/decができる (memory visibilityがどーたら)
3.どういうバリアが必要かは場合によって異なるから、コンパイラやlibcが提供するatomic_inc/dec関数にはバリアが入っていないことがある
こんなところじゃない?詳しい人フォローよろ。

238 名前:237 mailto:sage [2007/10/22(月) 23:52:39 ]
>>237
1と2の末尾にも「ことがある」を追加

239 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:24:36 ]
あー、そういう実装の既存の関数があるのね。

そこまで分かってるなら前後にメモリバリア足せばおしまいじゃね?



240 名前:デフォルトの名無しさん [2007/10/23(火) 00:29:35 ]
つーかvolatileで十分w

241 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:30:04 ]
atomic_inc/readはlinuxのカーネル系の関数のようだね。
pthreadのような高位のAPIを使わない理由はなんだろう?
パフォーマンスを気にするようなアプリなのか。

242 名前:203 mailto:sage [2007/10/23(火) 00:31:23 ]
>>241
pthreadにします。

243 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 09:00:33 ]
>>240
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

244 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 09:41:51 ]
SPARCv9なら、CASがあるよ。

245 名前:デフォルトの名無しさん mailto:sageない [2007/10/23(火) 17:58:33 ]
linuxのCでスレッドの排他制御をしたいのですが、
なにぶんPONIX?っていうんですか?での開発は初めてなので
ご質問させてください。

pthread_mutex_t mutex;
pthread_mutex_init( &mutex, NULL );
pthread_mutex_lock( &mutex );
pthread_mutex_unlock( &mutex );
PONIXではこのようにpthread_mutex_lockを使うようですが
この引数pthread_mutex_t*をWin32のCreateThread()のように
ある共通の識別子を持っているスレッド同士のみが排他制御を
するにはどのようにすればよいのでしょうか?

例えば同じ親から4つ子のスレッドが生まれたとします。
スレッド長男と次男は排他関係
スレッド長女と次女も排他関係
でもスレッド男兄弟とスレッド女姉妹は排他関係ではない
という場合です。

246 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 18:11:09 ]
必要なだけ mutex を作って、自分で識別子と mutex の対応付けを管理する

247 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 19:33:13 ]
>>246 ありがとう。

248 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:15:18 ]
自分でご質問とか言うなよ

249 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:29:36 ]
なぜ?



250 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:40:30 ]
自分がする質問だから

「あなたのご質問には答えられません」
なら、相手を持ち上げている
「私のご質問に答えてください」
なら、自分を持ち上げている

日本人として変であることに気づくべき

251 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:42:00 ]
あほか
美化語を知らんのか

252 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:47:44 ]
おトイレならわかるがご質問はないな。
「ご質問はありますか」は当然あり。

253 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:50:16 ]
尊敬と謙譲の概念しか無いようだな。

254 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:51:34 ]
板違い
よそでやれ

255 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:52:09 ]
使い方が間違っているんだよ。
それを気づくことができないのか?

256 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:54:16 ]
>>255
>>254

257 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:57:17 ]
>>254
いやいや、質問する上でのマナーの話だからここで良い
マナーを守れない方がどっか行くべき

258 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:00:35 ]
>>257
いやいや、ご質問する上でのマナーのお話だからここで良い
おマナーをお守りできない方がどっかへ行くべき


259 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:36:01 ]
いや、マナーってほどの話ではないとおもう
変な日本語を使ってるけど、意味は理解できるから問題ない

てなわけで、おスレち



260 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:41:30 ]
やっぱ誰でもアクセスできるローレベルな話のほうが伸びるなw

261 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:42:45 ]
すまんなw
おれも、なんか参加しちゃってるよw

262 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:44:37 ]
しょうがねーな
俺も参加してやろうか

263 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 22:46:22 ]
僕もご参加していいですか?

264 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 23:25:29 ]
どうぞ、ご参加ください。

265 名前:デフォルトの名無しさん [2007/10/23(火) 23:36:57 ]
珍しく盛り上がってると思ったら・・・

>>244
コード例


266 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 01:46:21 ]
ひさびさに来ましたよー
相変わらずスレ違いにはレス多いね。

267 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 01:59:52 ]
スレッドの呼び出しコストってどうやってはかるの?

組込み用でmutexとかの関数の呼び出しコスト一覧
表作り単位んだけどどうしたらいいん?

268 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 02:27:13 ]
>スレッドの呼び出しコスト
具体的にどういう意味と受け取ったらよいのだ?


269 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 02:38:38 ]
適当なタイマーで挟んではかr



270 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 08:11:41 ]
>>265
ttp://developers.sun.com/solaris/articles/stl-new.html
Standard Library, STL and Thread Safety
Atomic updates for reference counting

ttp://www.sparc.com/standards/SPARCV9.pdf
J Programming With the Memory Modelsにいろいろ
J.6 Spin Locks(Example 8―Lock and Unlock Using CAS)
J.11 Fetch_and_Add(Example 15―Fetch and Add Using CAS)
J.12 Barrier Synchronization(Example 17―Barrier Synchronization Using CAS)
J.13 Linked List Insertion and Deletion(Example 18―List Insertion and Removal)

271 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 09:27:41 ]
>>270
ktkr

272 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 08:14:03 ]
C++でのマルチスレッドに関する質問です
class sample{
private:
 int i;
 HANDLE hEvent;
public:
 sample(){
  hEvent = CreateEvent(NULL, TRUE, TRUE, L"sample");
 }
 ~sample(){
  CloseHandle(hEvent);
 }
 void fSetdate(int _i){
  WaitForSingleObject(hEvent, INFINITE);
  ResetEvent(hEvent);//ロック開始
  this->i = _i;
  SetEvent(hEvent);//ロック解除
 }
 int fGetdate(){
  WaitForSingleObject(hEvent, INFINITE);
  ResetEvent(hEvent);//ロック開始
  int _i = this->i;
  SetEvent(hEvent);//ロック解除
  return _i;
 }
}

273 名前:272の続き mailto:sage [2007/10/25(木) 08:17:17 ]
上記のクラスをひとつだけインスタンス化して、
複数のスレッドがそれを呼び出した場合、データの同期化は成立しますか?

274 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:08:53 ]
何が死体のこれ?


275 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:18:17 ]
別々のスレッドがfSetdateのResetEventに同時に到達した場合どうすんの?

276 名前:272の続き mailto:sage [2007/10/25(木) 09:39:20 ]
あべし

クラス内部でイベントによってデータの同期をとろうと思ったんですよー。


277 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 10:03:47 ]
何でCriticalSection使わんの?

278 名前:272 mailto:sage [2007/10/25(木) 10:27:32 ]
>>277
イベントと違いがわからんっす

279 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 11:26:21 ]
イベントを理解しとらんからだろ。
それで同期ってなにが目的なのよ?



280 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 11:44:13 ]
正解を書きたいけど、それをコピペして終了されると悲しいので
ここは是非MSDNのドキュメントを読むなりして頑張って欲しい。

281 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 13:10:53 ]
>>278
イベントとクリティカルセクションがどう違うかなんて、腐るほど説明があるから
いちいち書きたくないが、簡単に言うと

・イベント
遅い
プロセス間の同期に使える

・クリティカルセクション
速い&簡単
スレッド間の同期にしか使えない

あと、その目的でイベントを使うなら自動リセットイベントを使う。
そのコードだと275の懸念していることが、起こるかもしれないという
レベルではなく、確実に起こる。

282 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 13:20:09 ]
何をどう同期したいのか分からんから起こっても変わらん気がするw

283 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 15:43:08 ]
>>281
初心者に、あまり適当なこと教えるなよ。
それはどちらかというと、MutexとCRITICAL_SECTIONの違いだろ。

EventとCRITICAL_SECTIONの違い、あるいはpthreadにおけるcondとmutexの違いは
同期(実行をコントロールする)か排他(データを保護する)か。

284 名前:272 mailto:sage [2007/10/25(木) 18:24:31 ]
みなさんどうもっす。
同期について根本的に勘違いしてました。
データの保護ではCriticalSectionを使うのですね。

でもEnterCriticalSection()が同時に
実行されるということはありませんか?


285 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:31:20 ]
そんな質問が出るってことは
まだCriticalSectionについてググってすらいないようだな…。

286 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 20:26:43 ]
>>284
>でもEnterCriticalSection()が同時に
>実行されるということはありませんか?
わらった。
そりゃ同時に実行されるさ。そのためのものだもん。

287 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 14:38:05 ]
質問。
今のところはlinuxのpthreadのみを使っていますが、
なるべく一般のスレッドで使えるようにしたいと考えています。

複数のスレッド(X,Y,...)があってそれぞれが独立に動き、
読み込みアクセスrdと書き込みアクセスwrをします。
排他の条件は
1) XのrdとYのrd =>排他しない
2) XのrdとYのwr =>排他する
3) XのwrとYのwr =>排他する
4) XのwrとXのrd => 排他しない(wrの中からrdすることがあるので)
となっています。

自力で考えた手法はrwlockを使っています。
4)の条件を満たすためにrでロックする際はtryrdlock()して
・返り値がEDEADLKなら自スレッドがwrlockしているとみなしてロックせずに通す
・それ以外なら他スレッドがwrlockしているとみなして待機する
としています。
この手法で移植性は十分でしょうか?

288 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 14:58:54 ]
移植性っても、どの程度を考えてるかによるけど、例えば Windows には reader writer lock がそもそもなかったような…

289 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:10:34 ]
visutaから追加された。



290 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:15:25 ]
びじゅた?


291 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:25:14 ]
一般のスレッドって何だよ

292 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:38:23 ]
なんで4)でrdロックする必要あるの?


293 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:47:18 ]
ぴゅうた以来
プログラムかいてねーから
鈍ってしまって困った

294 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 09:52:33 ]
返答ありがとうございます。

>>288
Windowsのスレッドは触ったことがなく、rwlockがないことを知りませんでした。

>>292
rwlockの状態を知るためにtrylock()しています。
pthreadに現在の状態を問い合わせる関数が見付からなかったのでこのようにしました。
(一般には現在の状態を問い合わせても
次のステップまでその状態が持続するとは限らないことは承知しています)

mutexからrwlockを実装するというのを本で読んだことがあるので
それを参考に実装してみます。

295 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:30:34 ]
Linuxでpthreadを使用しているのですが
valgrindで実行するとfopenとfcloseの箇所で以下のエラーが大量に出ます。

==25540== Possible data race reading variable at 0x1D52238C
==25540== at 0x674CB5: _IO_un_link_internal (in /lib/tls/libc-2.3.4.so)
==25540== by 0x668A5D: _IO_fclose@@GLIBC_2.1 (in /lib/tls/libc-2.3.4.so)
==25540== Address 0x1D52238C is 52 bytes inside a block of size 352 alloc'd by thread 1
==25540== at 0x1D4A8090: malloc (vg_replace_malloc.c:131)
==25540== by 0x66935E: __fopen_internal (in /lib/tls/libc-2.3.4.so)
==25540== by 0x66941C: _IO_fopen@@GLIBC_2.1 (in /lib/tls/libc-2.3.4.so)

Webで調べるとglibcはすべてスレッドセーフだと書かれているのですが
同期とかしないといけないのでしょうか?
詳しいかた教えてください。


296 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 03:10:57 ]
helgrind使ってるって事?
あとさ、glibc-2.3.4って偉い古いな。


297 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 03:13:19 ]
関数がスレッドセーフであるかと同期が必要かは別問題

298 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 03:40:30 ]
>>295
同じdescriptorを同時にopen/closeしにいったらまずいわな。歯痛汁。

299 名前:295 mailto:sage [2007/11/15(木) 12:29:07 ]

>>296
CentOS4.5でhelgrind(valgrindは2.2)です。
yumしてみましたがglibcのバージョンは2.3.4が最新でした。

>>297
すみません、語弊がありました。
glibcがスレッドセーフでないならなにか回避策がないと
スレッドでは使用できなくなってしまうので一般的にはどうするのかなと。

>>298
すみません、説明が足りませんでした。
ファイルのオープン、リード、クローズは
すべて同一のスレッド内で行っています。




300 名前:295 mailto:sage [2007/11/15(木) 12:30:35 ]
みなさん遅くにありがとうございます。
もう少し調べてみます。

301 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:26:00 ]
valgrind3.3まで待ったら?

302 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 00:08:19 ]
同僚に嫌がらせするだけのために

valgrind --tool=erogrindって
オプション作って

オワタって表示されるようにしたんだけど
さっきめっさ怒られたw

303 名前:デフォルトの名無しさん [2007/11/17(土) 20:28:57 ]
思いつきだが、最新のvalgrindのsupression fileを使ってhelgrindしてみるのはどうだろうか。


304 名前:デフォルトの名無しさん [2007/12/18(火) 09:21:07 ]
Linuxを使った組込機器の開発に、NPTLではなくLinuxThreadsというのを使うことになりました。
これは聞くところによると、あまりOSに頼らずに実装されたスレッドライブラリということですが、
たとえばpthread_mutex_lock関数はどのように実装されているのでしょうか?OSのシステムコール
を呼ばない形で実装されているのでしょうか?

ソース嫁かもしれませんが、詳しい方いらっしゃいませんか?


305 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 09:55:20 ]
www.linux.or.jp/JM/html/LDP_man-pages/man7/pthreads.7.html

306 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 11:18:26 ]
アトミックオペレーションができるインストラクションをインラインアセンブラーで記述する事で実現している

307 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 21:23:24 ]
しばらくspinしてもロック獲得できなかったらRTシグナル街に入るんだっけ?
それはともかく、俺は完全ユーザ空間な1:Nスレッドの実装方法、特にどうスレッドをスケジュールするのかがさっぱりわからない。


308 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 21:48:30 ]
green thread

309 名前:デフォルトの名無しさん [2007/12/18(火) 21:49:42 ]
>>308
解説よろ



310 名前:デフォルトの名無しさん [2007/12/19(水) 23:15:10 ]
pthread規格で、
・端末で^CしたときのSIGINTシグナルは、どのスレッドに届くのか(あるいは全スレッドに届くのか)
・メインスレッドがexit()するとその他のスレッドは終了するのか
・メインでないスレッドがexit()したときはどうか
がわかりません。規格上どうなっているか、あるいは最近のLinuxでどうなるか教えていただけないでしょうか?
手元にSolarisしかなくて困ってます。

あ、main関数を実行したスレッドを勝手にメインスレッドと呼びました。


311 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:39:05 ]
>>310
プロセス宛てのシグナルは、どれか一つのスレッドに届く。どれに届く
かは決められていないので、受け取りたいスレッド以外ではそのシグナ
ルをブロックするようにしておく。

exit()でプロセスが終了する。スレッドは関係ないはず。



312 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:39:21 ]
スレッドセーフレベルの統一的な呼称ってあります?
引数がスレッドセーフじゃないとか条件付の状態とかあるよね。

313 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 11:07:35 ]
シグナル受け専用スレッドって作る?

314 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:32:00 ]
waitして何かあったらコールバックしてる。


315 名前:デフォルトの名無しさん [2007/12/23(日) 19:58:10 ]
pthread_cond_wait()でspurious wakeupが起こるのって具体的にはどういうときでしょうか?
どういう順番で、各スレッドの実行や切り替えが起こった場合でしょうか?

316 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 20:05:52 ]
.NETのMonitor.Waitでもおこるかどうか知ってる人いませんか?

317 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 20:14:35 ]
3000円ちらつかせると
解ってくるかもしれないw

318 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 20:48:11 ]
>>315,316
マルチスレッドプログラムは基本的に非同期なので、何がおきても対応できるように冗長に作っておいたほうがいいと思う。



319 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:44:58 ]
>>318
何も言ってないのと同じw

「基本的に」「何がおきても」「冗長に」って.....いかにも何も判ってない奴が使いそうなワードを連発されてもなぁ。



320 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:04:00 ]
代わりに君が内容の有る事を言ってもいいんだよ

321 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:20:32 ]
そんなものが書けると思っている段階でダメダメ

322 名前:319 mailto:sage [2008/01/02(水) 00:24:53 ]
>>315 >>320
まず、cond_waitしているスレッドがシグナルを受信し、cond_waitがEINTRで戻った場合。

もうひとつ、これをspurious wakeupと呼ぶかは語の定義によるが、cond_wait中のスレッドがwakeさせられた際、
mutexをlockする前に別のスレッドがmutexを先にlockし、条件を偽にした場合。

どちらも、POSIXでは起きてよいことになっているけど、本当に起こり得るかどうかは実装による。

>>316
知らん


323 名前:デフォルトの名無しさん [2008/01/02(水) 00:34:36 ]
>>316
research.microsoft.com/~birrell/papers/ThreadsCSharp.pdf
これの5.2

324 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:38:35 ]
>>295
去年の12月にhelgrindの新しいの出たらしいよ。


325 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 09:46:44 ]
>>295
複数のスレッドからアクセスすれば
"Possible" data race
になるのは当然なような
俺はそういう作り方はしない

326 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:33:19 ]
>>295
ファイル操作用のスレッドかなにかに
終了通知送って閉じさせろよ

資源の管理はよほどの事情ないかぎり
一括にしろ
いいなわかったか?反論するなら
お前の家にそれは末恐ろしいものを
いくつかぶちまけて逃走するからな?

いいかわかったか?

327 名前:デフォルトの名無しさん [2008/01/06(日) 23:38:52 ]
C言語でマルチスレッドに挑戦していまして、
複数の子スレッドを途中停止させ、また再開できるような状態にしたいのですが、
いい方法はありませんか?

328 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:41:50 ]
>>327
Cでどうやるのか忘れたけど、イベントなりセマフォなりミューテックスなりで待たせるのが
一般的。

329 名前:デフォルトの名無しさん [2008/01/06(日) 23:47:25 ]
>>327
pthread_barrier_wait()
とエスパー。



330 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:21:07 ]
>>327

C言語にスレッドという概念はない。
環境書かないとわかんないよ。


331 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 09:38:37 ]
WindowsXPです。






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

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

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