Linuxシステムでpthreadを使用してスレッド同期に関する簡単なプログラムを試していました。私のプログラムのソースはhttp://pastebin.com/5EWS68NLです。スレッド同期 - プロセスの最大スレッド数
プログラムは、番号1をLIMIT(任意の数値)に昇順に印刷する必要があります。スレッドは各数値を出力するように割り当てられ、条件変数が通知されるまで待機し、数値を出力します。
プログラムは、LIMIT = 380になるまでうまく動作します。それ以上に、プログラムがハングします。つまり、pthread_create()はエラー番号を出力しようとしたためエラーを返しませんでしたし、エラーの場合はfflush(stdout)もインクルードしています。
システムの最大スレッド数は、/ proc/sys/kernel/threads-maxで指定できます。私はそれを任意に大きくして成功させようとしました。スレッドの数が約380であれば、プログラムは明らかにハングします。
これはどういう考えですか?この値 '380'はシステムによって異なりますか?
おかげで、よろしく、
Hrishikeshムラリ
ああ、大丈夫です。私はそれを試して、戻ってきます。 :-) –