0

Linux の pthreads ライブラリのスタック割り当てを理解しようとしています。ここにいくつかの質問があります:

A) メインスレッドとは? - それは C main() プログラムを実行しているスレッドですか?

B) メインスレッドのスタック割り当てはどのくらいですか? それはulimit -sサイズですか?

C) サブスレッドのスタック割り当てはどのくらいですか? それはulimit -sサイズですか?

D) メインスレッドと他のスレッドのスタックサイズは依存していますか?

E) プロセス スタックとスレッド スタックは共有されていますか? a.outプロセススタック(たとえば)のサイズを決定するにはどうすればよいですか。

F) これらの情報は、NPTL と LinuxThreads の実装間で異なりますか?

ありがとう

4

1 に答える 1

1

A: はい
B: はい
C: たぶん。

スレッドの作成時に使用された pthread_attr_t がスタック サイズを指定していない場合、およびulimit -sが無制限でない場合はulimit -s、新しく作成されたスレッドのスタック サイズが決定されます。

D: 質問が不明確です。それらは互いに依存していませんが、ulimit -s特定の条件下では両方が依存しています。

E. はい、いいえ。これらはメモリの可視性という意味で共有されます。メイン スレッドは他のスレッドのスタック変数を読み書きでき、その逆も可能です。しかし、各スレッドは独自のスタックで実行されるため、2 つのスレッドが同じスタックで実行を開始した場合、それは大惨事になります。

F.No.

于 2012-06-30T07:28:04.360 に答える