有一个多线程工作的程序,多线程的性能较低,cpu占用不超过50% 用工具查看,发现线程果然大部分时间在等待,等待的原因是:Executive。 在MSDN中查了半天,对Executiv的解释是:thread is waiting for the scheduler. 线程在等待调度器? 已经确认不是sleep()和其他线程同步时使用的临界区引起的 请教高人,什么原因会导致线程的这种等待?如何解决? 真心求教~~~
不知道你的等待函数如何,我只是猜测你用了,
NTSTATUS
KeWaitForSingleObject(
IN PVOID Object,
IN KWAIT_REASON WaitReason,
IN KPROCESSOR_MODE WaitMode,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL
);
第二个参数就是要等待的原因。也就是你上面要说的Executive