Help us understand the problem. What is going on with this article?

Linuxのマルチスレッドプログラミングにおけるスタックサイズの設定について

More than 1 year has passed since last update.

要約

ulimit で表示される stack sizeunlimited の場合,スレッドを使用するプログラムを実行する際には注意が必要.
有限値が設定されている場合,おそらく,各スレッドのスタックサイズはその値が使用される事になるだろう.
しかし, unlimited の場合, スレッドのスタックサイズが小さい有限値 (2MiBとの事です.コメント頂きありがとうございます)に設定されてしまう可能性が有る.
ここで「小さい」と書いたのは,多くの場合においてスタックサイズのデフォルト値である8192KBよりも小さいという事を指している.
また,「可能性」なので,環境によっては問題が生じない事もあるだろう.
つまり,もしも小さく設定されてしまった場合, スタックオーバーフロー(SEGV)が起き易くなるという事.
回避・解決手段はスタックサイズを適切な有限値に設定する事.

また, @angel_p_57 さんのコメントより,この現象に関するソースコードの該当部分(代入定義)を教えて頂きました.
ありがとうございます.

実験

要点は上に書いたので,とりあえず公開する.
色々と見ているうちに,システムの情報や仕様,例外の対処関連の話が気になって来たので,備忘録も兼ねて再現実験をしようと思う.
今はたてこんでいるので,後でやる.

TODO

環境

TODO

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away