线程调度

1、创建一个被挂起的线程装CreateThread函数标志位传入CREATE_SUSPENDED
2、ResumeThread恢复被挂起的线程,SuspendThread挂起线程(应当小心使用,防止因挂起而引起死锁)
3、常用的Sleep函数,是使线程自愿放弃属于它的时间片中剩下的部分。只是近似。
4、切换到另一个线程,系统提供了一个名为SwitchToThread的函数,如果存在一个可调度线程,系统会让此线程运行。
5、BOOL GetThreadTimes(HANDLE hThread,//句柄
        PFILETIME pftCreationTime,//创建时间
        PFILETIME pftExitTime,//退出时间
        PFILETIME pftKernelTime,//内核时间
        PFILETIME pftUserTime);//用户时间
6、BOOL GetProcessTimes(HANDLE hProcess,PFILETIME pftCreationTime,PFILETIME pftExitTime,PFILETIME pftKernelTime,PFILETIME pftUserTime);
    参数函数同上。返回一个进程中的所有线程
7、CONTEXT结构在线程调度中起到重要作用。这个结构与cpu型号有关系,包括寄存器,标志位等。
8、获取当前CPU寄存器状态的集合BOOL GetThreadContext(HANDLE hThread,PCONTEXT pContext);
    调用GetThreadContext前先调用SuspendThread。
9、实际一个线程有两个上下文,用户模式和内核模式。GetThreadContext只能返回用户模式上下文。
10,当然也可以使用SetThreadContext来改变结构中的成员,但这容易造成违规。
11、Windows支持6个线程优先级,idle,below normal,normal,above normal,high和real-time。一般程序都用normal。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值