0

POSIX セマンティクスで、プロセス A があり、t1 と t2 の 2 つのスレッドがあるとします。t1 がメイン スレッドで、t2 で fork を呼び出してプロセス B を fork します。

では、この新しいプロセス B にも t1 と t2 がありますか? それともt2だけですか?

つまり、フォークは複数のスレッドを新しいプロセスにも複製しますか?

4

1 に答える 1

2

子プロセスは、単一のスレッド (fork() を呼び出したスレッド) で作成されます。ミューテックス、条件変数、その他の pthreads オブジェクトの状態を含め、親の仮想アドレス空間全体が子に複製されます。pthread_atfork(3) を使用すると、これが引き起こす可能性のある問題に対処するのに役立つ場合があります。

男 2フォーク マニュアル

于 2013-06-05T09:18:30.717 に答える