一、ResumeThread
1、唤醒线程,将挂起计数减一。
2、无法自己唤醒自己
二、SuspendThread
1、挂起线程,将挂起计数加一。
2、可以自己挂起自己。
3、它是异步的。
4、需要防止产生锁。
三、Sleep
1、让一个线程睡眠一段时间。
2、传入INFINITE 让线程永远睡眠。
3、传入0,让线程放弃剩余的时间片,然后立即重新再调用该线程。
四、SwitchToThread
1、让当前线程放弃剩余时间片,去执行一个饥饿的线程。
五、GetThreadContext
1、获取线程上下文。
六、线程优先级
1、线程的优先级由进程优先级和线程优先级组成。
2、进程优先级有6级,99%的程序在normal级。
3、线程优先级有31级,系统总是给最高级的线程分配cpu,高优先级的线程总是抢占低优先级的cpu,
4、GetPriorityClass/SetPriorityClass、GetThreadPriority 可以设置进程优先级,但不可设置线程优先级。
5、系统可能会动态提升线程的优先级,有SetProcessPriorityBoost可以禁止此操作。
6、系统可以微调某个线程的时间片。