zoukankan      html  css  js  c++  java
  • 进程优先级

    l         进程优先级

    l         获取当前进程句柄

    l         优先级设置

    l         优先级变动

    l         优先级获取

          

    一、进程优先级(优先级等级)

     

        简单的说就是进程(线程)的优先级越高,那么就可以分占相对多的CPU时间片。   每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。

     

      priority class)优先级等级,这里我叫它进程优先级。因为一般来说它是在调用CreateProcess时指定的,CreateProcessdwCreationFlags就可以指定进程的优先级。而线程创建时会继承进程的优先等级

        因为线程才是CPU时间分配的最小单位,所以部分书上也叫线程优先等级。

     

     

     

    进程优先级 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

    #define NORMAL_PRIORITY_CLASS             0x00000020

    #define IDLE_PRIORITY_CLASS                 0x00000040

    #define HIGH_PRIORITY_CLASS                 0x00000080

    #define REALTIME_PRIORITY_CLASS            0x00000100   

     

    //2000及XP以上版本支持以下 优先级等级

    #define BELOW_NORMAL_PRIORITY_CLASS       0x00004000

    #define ABOVE_NORMAL_PRIORITY_CLASS       0x00008000

     

    二、获取当前进程句柄

        GetCurrentProcess

    三、进程优先级的设置

        CreateProcess    创建进程时 也可以设置 进程优先级

    SetPriorityClass  设置进程优先级

    GetPriorityClass   获取进程优先级

    SetProcessPriorityBoost  设置  激活或停用进程优先级提高功能

    GetProcessPriorityBoost   获取 是否 激活进程优先级提高功能

     

      void CDialog_PROCESS::OnBnClickedRadio1()

    {

             SetPriorityClass(GetCurrentProcess(),IDLE_PRIORITY_CLASS);

    }

     

    void CDialog_PROCESS::OnBnClickedRadio2()

    {

             SetPriorityClass(GetCurrentProcess(),BELOW_NORMAL_PRIORITY_CLASS);

    }

     

    void CDialog_PROCESS::OnBnClickedRadio3()

    {

             SetPriorityClass(GetCurrentProcess(),NORMAL_PRIORITY_CLASS);

    }

     

    void CDialog_PROCESS::OnBnClickedRadio4()

    {

             SetPriorityClass(GetCurrentProcess(),ABOVE_NORMAL_PRIORITY_CLASS);

    }

     

    void CDialog_PROCESS::OnBnClickedRadio5()

    {

                      SetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS);

    }

     

    void CDialog_PROCESS::OnBnClickedRadio6()

    {

                      SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);

    }

  • 相关阅读:
    Ping链路测试
    开源EDR(OSSEC)基础篇- 01 -设计定位与能力输出
    全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS7.X)和ossec-agent(CentOS7.X))(图文详解)
    centos7 编译问题:aclocal-1.14: command not found
    Centos 6.x 安装 docker
    CentOS7--删除virbr0
    为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
    编译rxtx
    Linux 入侵检测中的进程创建监控
    ActionBarSherlock的使用——(一)配置
  • 原文地址:https://www.cnblogs.com/15157737693zsp/p/3843041.html
Copyright © 2011-2022 走看看