私は現在、Linuxオペレーティングシステムのスレッドに関連する問題を解決するよう努めています。プロセスはLinuxカーネルのスケジューラによって開始されることを知っていますが、プロセス内のスレッド(LinuxカーネルスケジューラまたはLinuxカーネルの他のサービス)を起動するのは何ですか?
この質問に答えるのを手伝ってください。
ありがとう
答え1
Linux では、プロセスとスレッドは以下を呼び出して生成されます。fork
、clone
、他の同様のシステムコールとCライブラリ機能。ほとんどのプログラマは直接呼び出さず、代わりにclone
スレッドライブラリ(pthread、C ++スレッド、および選択した言語で使用される他の表現)を使用します。
プロセスとスレッドの両方ここに行くスケジューラによって。実際、Linuxのスケジューラは主にスレッドに関連しており、「スレッドレス」プロセスは実際には同じプロセスに兄弟がないスレッドです。バラよりスレッドに独自のPIDがあるのはなぜですか?