2017-04-19 9 views
1

実際のタイムスライスは、OSやプロセッサなどのいくつかの要因によって変動すると私は理解しています。スレッドに与えられた実際のタイムスライスを知るにはどうすればよいですか?

しかし、自分自身にCPUを持っている間にスレッドに割当てられたタイムスライスをカウントさせる方法はありますか?

+1

sysinternalsのツールを使用して確認しますか? –

+0

http://stackoverflow.com/questions/1393006/how-to-get-the-cpu-usage-per-thread-on-windows-win32の重複はありますか? –

+0

そして記録のために:私はこの質問が好きです。それは思考のための食糧を与える;スレッドが独自の利用状況を測定できる場所を実装することは、面白い課題のように聞こえます。 – GhostCat

答えて

2

興味深い質問;しかし、私はと思う:おそらくそうではありません。

この措置するためには、スレッドの内部から、糸を約イベントを知っている必要があります。

  1. スレッドが再開/開始されたが、 CPU時間を取得します。そこから

実行

  • スレッドは「一時停止」される実行を開始、および停止する:「あなただけが再開されました」あなたがスレッドを伝えるためのメカニズムを見つけた場合でも - ときにあなたがスレッドを伝えることができますか中断された?言い換えれば、2つのフックが必要になります。それは何とか「あなたは再開しました」だけでなくスレッドに通知します。 「あなたはすぐに延期される」ということについても言及しています。糸自体がその簿記を行うことができるようにする。

    はあなたのコメントを考える:はい、基盤となるOSがCPUスライスの持続時間を決定することができます場合と継続時間が定数ある。スレッドは「イベント2」について知る必要はありません。

  • +0

    ありがとうございます。あなたが言及した理由のために私は疑わしいと思った。これが不可能な場合は、オペレーティングシステムの構造体から変数を読み取って、タイムスライスの測定値をどれだけ読み取ることができるでしょうか? –

    +0

    答えを更新しました。それでもメタレベルになっています。本当に技術的な答えを与えるために私は徹底した.NetとWindows OSの知識が不足しているので。 – GhostCat

    関連する問題