2016-08-05 16 views
0

スレッドを起動すると、オペレーティングシステムはそのスレッドを実行キューに入れ、オペレーティングシステムのスケジューラは時間(量子)が来るとそのスレッドを実行します。 そのスレッドがその操作を完了したかどうかをオペレーティングシステムがどのように理解していますか?スレッドが終了したかどうかをオペレーティングシステムがどのように理解していますか?

答えて

1

スレッドは、OS固有の関数を呼び出します。この関数は、OSにそのことを伝えます。ほとんどの言語/フレームワークでは、これはあなたのために舞台裏で行われます。

+0

どのようにですか?スレッドを開始するときにメソッド参照を渡すだけですが、スレッド関数コードの最後にコードを挿入しますか? – spartacus

+0

メソッドをOSに渡します。 OSはそれを呼び出します。それが返ってくると、それを呼び出したOS /フレームワーク関数は、os thread finished関数を呼び出します –

1

一般にカーネルスレッドを終了させるメカニズムは2つあります。終了プロセスと同じです。

  1. スレッドを終了するためのシステムサービスへの明示的な呼び出し。または
  2. 終了するシステムサービスへの暗黙的な呼び出しは、スレッドのmain関数が終了したときに呼び出されます。
関連する問題