2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-07-15

要約

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

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

実験

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

TODO

環境

TODO

参考文献

2
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?