zoukankan      html  css  js  c++  java
  • C++/MFC-线程优先级

    转载: https://blog.csdn.net/qwdpoiguw/article/details/72830426

    一、线程优先级(Thread priority )

    简单的说就是(线程)的优先级越高,那么就可以分占相对多的CPU时间片。  

    每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。

    最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。

     

    进程优先级priority class

    标志

    优先级值

    idle     (低)

    IDLE_PRIORITY_CLASS

    4

    Below     低于标准

    BELOW_NORMAL_PRIORITY_CLASS

    此值在2000以下系统不支持

    normal  (标准)

    NORMAL_PRIORITY_CLASS

    9(前台) 7(后台)

    Above     高于标准

    ABOVE_NORMAL_PRIORITY_CLASS

    此值在2000以下系统不支持

    high      (高)

    HIGH_PRIORITY_CLASS

    13

    realtime (实时)

    REALTIME_PRIORITY_CLASS

    24

     

    一个线程创建的时候,会继承进程的优先级等级。另外线程优先级可以用SetThreadPriority来进行微调

        微调范围

     

    线程优先级等级

    标志

    优先级值

    1

    idle      (最低)

    THREAD_PRIORITY_IDLE

    如果进程优先级为realtime则调整为16,其它情况为1

    2

    LOWEST  低

    THREAD_PRIORITY_LOWEST

    -2(在原有基础上-2)

    3

    BELOW   低于标准

    THREAD_PRIORITY_BELOW_NORMAL

    -1(在原有基础上-1)

    4

    NORMAL(标准)

    THREAD_PRIORITY_NORMAL

    不变(取进程优先级值)

    5

    ABOVE    高于标准

    THREAD_PRIORITY_ABOVE_NORMAL

    +1(在原有基础上+1)

    6

    HIGHEST (高)

    THREAD_PRIORITY_HIGHEST

    +2(在原有基础上+2)

    7

    CRITICAL(最高)

    THREAD_PRIORITY_TIME_CRITICAL

    如果进程优先级为realtime则调整为31,其它情况为15

    注意:进程有6个等级,线程有7个等级

    二、获取当前线程句柄

    HANDLE  GetCurrentThread(VOID)
    //返回当前进句柄

    DWORD   GetCurrentThreadId(VOID)
    //返回当前进程ID值

    三、线程优先级的设置

     BOOL SetThreadPriority   //设置一个线程的优先级别

    (

     HANDLE hThread,// 线程句柄   handle to thethread

     int nPriority      // 要设置线程优先级别thread priority level

    );

     

    int GetThreadPriority    返回一个线程的优先级别 

    SetThreadPriorityBoost    设置线程是否禁用动态调整优先级功能。

    GetThreadPriorityBoost    获取线程是否禁用了优先级微调功能。

    四、示例代码

     

    SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_IDLE); //设置为 最低
     
    jpg改rar 

  • 相关阅读:
    c
    罗扎诺夫高效记忆音乐【推荐试试】
    通过信息系统项目管理师最高可申领补贴2000元
    人事考试网【您有新信息】浙江人事考试网_浙江省公务员考试网_2017浙江公务员考试_中公浙江
    几种需求管理工具(转)_伊处_新浪博客
    PLM_百度百科
    统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求管理工具,集成研发管理平台 ——管理咨询与实施工具 一站式项目管理解决方案
    Oracle PLM
    Oracle PLM
    Oracle PLM
  • 原文地址:https://www.cnblogs.com/kuangke/p/9621523.html
Copyright © 2011-2022 走看看