如何知道给线程的实际时间片?

时间:2017-04-19 07:38:10

标签: c# .net windows multithreading operating-system

据我所知,实际的时间片是可变的,具体取决于OS和处理器等几个因素。

但有没有一种方法可以让线程在它拥有CPU的时候计算分配给它的时间片?

1 个答案:

答案 0 :(得分:2)

有趣的问题;但我:可能不是。

为了从线程内部衡量,线程需要了解两个事件:

  1. 启动/恢复线程;获得CPU时间;并开始运行
  2. 线程被“暂停”,并停止执行
  3. 从那里开始:即使你找到一种机制告诉线程“你刚刚恢复” - 你怎么能告诉线程何时被暂停?换句话说:你需要两个钩子,以某种方式通知线程不仅“你恢复了”;还有关于“你很快就会被停职”;这样线程本身就可以进行簿记。

    鉴于您的评论:是的,如果基础操作系统允许确定CPU切片的持续时间持续时间常量;然后线程不需要知道“事件2”。