今回はスレッドが最大でいくつ作成できるか検証してみます。実際に確認してみましょう。0;}上のコードを動かしてみると、このようになってしまいます。スレッドは32752個作成した時点でそれ以上作れなくなってしまいます。これはreturnでスレッド処理が戻ってもそのスレッド情報は残ったままだからです。コード中のコメントアウトしてあるpthread_join()の箇所を追加してあげると、スレッド情報が完全削除されます。指定したスレッド数だけ作成出来るようになります。実は、OS側で作成出来る最大スレッド数が決められています。物理面と論理的ファクタが関係してきます。OSによる論理的ファクタです。以下のコマンドを打ちます。/proc/sys/vm/max_max_countthreads-maxは1プロセスが作成できる最大スレッド数を意味します。※なぜかこれ値を超えて作成できてしまいました。調べましたが結局分かりませんでした。pid_maxはシステム全体で作成できる数を意味します。使用するので、現実はこれの半分以下が作成できることになります。以上の3つを変更してあげれば作成可能な最大スレッド数も増えます。以下の3行を設定します。上述したようにメモリマップ値は2倍以上の値をセットしましょう。することでシステムをオフにしても設定が保持されます。この状態でもう一度コードを実行してみましょう。上限突破しているはずです。以下のようになりました。実際に作成出来た数は49987でした。一緒ということでOKでしょう。次に物理的な制約面のお話です。スレッドを作成すると、スタック領域に確保されます。スタック領域の最大領域を超えてスレッドは作成できません。ユーザが使用できるスタックサイズは以下で確認できます。私の環境であれば、スタック領域は約8MBでした。単純な話、この領域内であれば、スレッドを作成出来ることになります。環境によってはswap領域を作成している場合があります。swap領域はメモリが足りなくなった際に、ストレージの一部をメモリとして使うことが出来る領域のことです。したがって実際はswap領域も関係してきます。最後まで読んでいただきありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。ARPエントリーを取得して表示させてみました。そのままCで実装したいと思いまいした。deniedになった件DHCPパケットを送信するコードを書いていたら、どうも送信の部分が上手くいきませんでした。実現するには様々な方法が存在します。その一つにマルチプロセス化があります。処理を進めていく方法です。そっちを先に読むと理解しやすいかも。使う機会に遭遇しました。インストールする必要があります。Cell)の原理と特徴のまとめ!NEXT【C++】サーバにマルチスレッドを実装し、マルチクライアントに対応してみたプロフィール某名門大の大学院生です。IoT、人口知能、ネットワークインフラ系まで幅広く興味があります。いう方のために簡単にまとめてみました。IPv6を取得して標準出力させてみます。自分の目で調査したのでまとめます。変更までする方法をご紹介します。ioctlシステムコールを使います。フラグを引数に指定します。一度まとめておこうと思います。以下が思いつくかと思います。全て"stdio.h"に定義されています。