编写Win32下的多线程程序-线程的优先级

先锋7号
编写Win32下的多线程程序
2000/2/23 yangli
线程的优先级:
设定线程的相对优先级:
BOOL SetThreadPriority( HANDLE hThread , int nPriority );
Int GetThreadPriority( HANDLE hThread );
其中:
nPriority 为:
THREAD_PRIORITY_IDLE 空闲
THREAD_PRIORITY_LOWEST 比所属进程优先级小2
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL 和所属进程一样大
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_HIGHEST 比所属进程优先级大2
THREAD_PRIORITY_CRITICAL 时间关键
系统线程的基本优先级列表:
线程的相对优先级 进程优先级类
空闲 普通 高 实时
THREAD_PRIORITY_IDLE 1 1 1 16
THREAD_PRIORITY_LOWEST 2 6 11 22
THREAD_PRIORITY_BELOW_NORMAL 3 7 12 23
THREAD_PRIORITY_NORMAL 4 8 13 24
THREAD_PRIORITY_ABOVE_NORMAL 5 9 14 25
THREAD_PRIORITY_HIGHEST 6 10 15 26
THREAD_PRIORITY_CRITICAL 15 15 15 31
注:1 改变进程的优先级对线程的相对优先级没有影响,
设置线程的相对优先级的效果不会累加。
2 没有Win32函数返回线程的相对优先级。要记住这些优先级只是个大概。Microsoft保留随时修改它的权利。只要使用进程的优先级类和线程的相对优先级类,就会一切正常。
3 Windows95没有实现这一对函数
设置/取消线程优先级的动态提升
BOOL GetThreadPriorityBoost( HANDLE hThread , BOOL DisablePriorityBoost );
BOOL SetThreadPriorityBoost( HANDLE hThread , BOOL DisablePriorityBoost );
有时,操作系统回微调线程的优先级。通过这两个函数可以禁止/开放操作系统的这一功能。
注:Windows95没有实现这一对函数
挂起和恢复线程
DWORD ResumeThread(HANDLE hThread);
DWORD SuspendThread(HANDLE hThread);
如果挂起线程成功,则返回线程被挂起的次数。否则返回-1;
如果线程被挂起n次,则要n次才能恢复。

当我离开西北工业大学后,才发现这里原来也是一所好大学