线程控制(vc的代码)
今天我来带大家查看下微软是如何写线程控制函数的。当然实际中我们很少有机会写这样的代码,不过这里面用到的一些思想我们是可以利用的。就像我在前几篇文章中写到的
CreateEventW创建事件,InterlockedExchange原子操作,WaitForSingleObject等待信号,而新的东西就是这个SetPriority和SpinUntilBlocked我想对于已经了解线程的一些人从英文字面中已经可以看出这两个函数的作用了,我们只需要查看里面的内容就知道这些函数是什么作用了,其实就是一个决定线程优先级的函数。
BOOL SetThreadPriority(
HANDLE hThread, // handle to the thread
int nPriority // thread priority level
);
功能说明
设置指定线程的优先级
参数说明
hThread 要设置的线程句柄
nPriority 优先级别参数 可设置为一下参数
THREAD_PRIORITY_ABOVE_NORMAL 为比一般优先级高一个等级
THREAD_PRIORITY_BELOW_NORMAL 比一般低一个等级
THREAD_PRIORITY_HIGHEST 比一般高2个等级
THREAD_PRIORITY_IDLE
THREAD_PRIORITY_LOWEST 比一般低2个等级
THREAD_PRIORITY_NORMAL 一般等级
THREAD_PRIORITY_TIME_CRITICAL