能否有办法查出本线程在运行过程中有没有被其它线程抢占时间片?

beiyouwx   2009-7-8 13:35 楼主
假设某一线程就绪后开始运行,需要比较长的时间,大概500ms,如果这个过程被其它线程抢占,则必须想办法让这个线程知道自己被抢占过。
仅靠CE的API函数,而不动用硬件定时器,能办到吗?

回复评论 (4)

用 GetTickCount 去算时间差, 堪用, 但无法直接得知.

Paul, Chao @ Techware
点赞  2009-7-8 13:49
引用: 引用 1 楼 paul_chao 的回复:
用 GetTickCount 去算时间差, 堪用, 但无法直接得知.

Paul, Chao @ Techware

请问paul_chao大侠,假设我把这个线程的优先级设为0,当线程就绪开始运行后,如果它的时间片没用完,是不是就不会被任何其它线程抢占(包括内核的一些服务线程)?
点赞  2009-7-8 13:54
1. 是.

2. ISR 是无法避免的.

Paul, Chao @ Techware
点赞  2009-7-8 13:56
也就是说,这种功能需求在ISR中实现比较合理,因为我对精度的最多不能超过30us,相当于其他ISR的影响都是不允许的!
点赞  2009-7-8 14:24
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复