关于CPU时间片的问题,在线等待!

lifezhu 2005-08-08 02:28:40
如何保证相邻的两条语句在一个CPU时间片内完成?条件:这两条语句总共执行时间不大于1ms
例如:
fun1();
QueryPerformanceCounter(&LICount);
为了确定fun1结束的精确时刻到一毫秒
...全文
200 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_heart 2005-08-10
  • 打赏
  • 举报
回复
老大,做windows的东西,就要遵守windows的游戏规则。
darkstar21cn 2005-08-10
  • 打赏
  • 举报
回复
无法保证,除非你能改内核,使得这2个操作成为一个原子操作
lifezhu 2005-08-10
  • 打赏
  • 举报
回复
看来需要编写驱动解决问题了,试过多次,只要一切换软件就不能保证
HaoyuTan 2005-08-09
  • 打赏
  • 举报
回复
GetThreadTimes

The GetThreadTimes function retrieves timing information for the specified thread.

我大概能猜到楼主的意图,试试这个函数吧:

The GetThreadTimes function retrieves timing information for the specified thread.

BOOL GetThreadTimes(
HANDLE hThread,
LPFILETIME lpCreationTime,
LPFILETIME lpExitTime,
LPFILETIME lpKernelTime,
LPFILETIME lpUserTime
);

HaoyuTan 2005-08-09
  • 打赏
  • 举报
回复
把优先级设为Real Time,执行完这两句后再设回来,应该99.99999%的情况下都能满足楼主的需求了
ashhyc 2005-08-09
  • 打赏
  • 举报
回复
我觉得短时间设置线程优先级为实时比较好.但QueryPerformanceCounter返回的也不是精确的时间...所以谈到保证怎么怎么样....
teli_eurydice 2005-08-09
  • 打赏
  • 举报
回复
UP
亿云力科技 2005-08-09
  • 打赏
  • 举报
回复
mark
thisisll 2005-08-08
  • 打赏
  • 举报
回复
学习
shootingstars 2005-08-08
  • 打赏
  • 举报
回复
Windows不是实时操作系统,无法满足你的需求。
lifezhu 2005-08-08
  • 打赏
  • 举报
回复
CPU分配的最小时间片断为2ms,如果fun1为一个等待信号并立即激活线程的函数,而QueryPerformanceCounter(&LICount)的执行时间不超过2ms,是否能保证从fun1结束到QueryPerformanceCounter(&LICount)执行完毕不超过一个时间片?
具体需求是:判断计算机串口有信号的具体时刻,精度在1ms
DentistryDoctor 2005-08-08
  • 打赏
  • 举报
回复
你无法干预操作系统的调度。
DentistryDoctor 2005-08-08
  • 打赏
  • 举报
回复
这个无从保证。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧