Windows 进程优先级是继承的吗?

Windows 进程优先级是继承的吗?,windows,inheritance,process,windows-task-scheduler,Windows,Inheritance,Process,Windows Task Scheduler,假设您有一个运行优先级高于正常值的Windows进程a,该进程在没有指定优先级的情况下启动另一个进程B。进程B的优先级是否继承自进程A的优先级?那么,流程B的优先级是什么?高于正常、正常或其他?来自以下文档: dwCreationFlags[in] 控制优先级类和进程创建的标志。有关值列表,请参见进程创建标志。 此参数还控制新进程的优先级类,该类用于确定进程线程的调度优先级。有关值列表,请参见GetPriorityClass。如果未指定任何优先级类别标志,则优先级类别默认为正常优先级类别,除

假设您有一个运行优先级高于正常值的Windows进程a,该进程在没有指定优先级的情况下启动另一个进程B。进程B的优先级是否继承自进程A的优先级?那么,流程B的优先级是什么?高于正常、正常或其他?

来自以下文档:

dwCreationFlags[in]

控制优先级类和进程创建的标志。有关值列表,请参见进程创建标志。

此参数还控制新进程的优先级类,该类用于确定进程线程的调度优先级。有关值列表,请参见GetPriorityClass。如果未指定任何优先级类别标志,则优先级类别默认为正常优先级类别,除非创建进程的优先级类别为空闲优先级类别或低于正常优先级类别。在这种情况下,子进程接收调用进程的默认优先级类。
因此,在您的示例中,新进程将具有正常优先级。

在Windows中,进程优先级不会被继承。

如果未指定,则优先级类某些情况下会被继承

当调用进程处于空闲\u优先级\u类低于\u正常\u优先级类时发生。否则,除非在CreateProcess调用期间指定,否则它将获得正常\u优先级\u类

MSDN在CreateProcess的dwCreationFlags上表示:

此参数还控制新进程的优先级类,该类 用于确定流程的调度优先级 线程。有关值列表,请参见GetPriorityClass。如果没有 如果指定了优先级类标志,则优先级类默认为 正常\u优先级\u类,除非创建 进程为空闲\u优先级\u类或低于\u正常\u优先级\u类。在这个 在这种情况下,子进程接收 呼叫过程


因此,答案是正常优先级。基本上,任何高于正常水平的东西都不会传给孩子。

“基本上,任何高于正常水平的东西都不会传给孩子。”-这是多么悲惨的现实啊。