Windows编程--线程的切换

来源:互联网 发布:app php服务器搭建 编辑:程序博客网 时间:2024/06/03 03:45

系统提供了一个称为SwitchToThread的函数,使得另一个可调度线程(如果存在能够运行):

BOOL SwitchToThread();

当调用这个函数的时候,系统要查看是否存在一个迫切需要CPU时间的线程。如果没有线程迫切需要CPU时间,SwitchToThread就会立即返回。如果存在一个迫切需要CPU时间的线程,SwitchToThread就对该线程进行调度该线程的优先级可能低于调用SwitchToThread的线程)。这个迫切需要CPU时间的线程可以运行一个时间段,然后系统调度程序照常运行。

该函数允许一个需要资源的线程强制另一个优先级较低、而目前却拥有该资源的线程放弃该资源抢占资源)。如果调用SwitchToThread函数时没有其他线程能够运行,那么该函数返回FALS E,否则返回一个非0值。

 

SwitchToThread和Sleep的异同

调用SwitchToThread函数与调用Sleep是相似的,并且传递给它一个0ms的超时。差别:是SwitchToThread许优先级较低的线程运行。即使低优先级线程迫切需要C P U时间,Sleep也能够立即对调用线程重新进行调度。

(FangSH注:网上有人这样说:区别在于,SwitchToThread允许执行低优先级线程,Sleep会立即重新调度主调线程,即使低优先级线程会处于饥饿状态。)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 万字结编法图解 字花 宋字花式图片 字花36种动物详细资料 三十六字花谜语破解软件 三十六动物字花手册 字花题目及答案 100万存银行一年利息多少 10万存一年利息多少 2019存30万存三年利息多少 50万存银行一年多少利息 1000万存银行一年利息多少 200万存银行一年利息多少 10万存银行好还是余额宝好 十万存银行一年多少利息 一万存一年利息多少 五十万存银行一年有多少利息 40万存银行一年利息多少 20万存定期三年利息 二十万存定期一年利息多少 20万存银行一年利息是多少 10万存3年定期利息是多少 100万存银行一个月利息多少 20万存余额宝一天收益多少 十万存一年定期利息是多少 十万存定期一年利息多少 10万存银行一年利息多少 一万存三个月利息多少 15万存银行一年利息多少 十万存余额宝一年收益多少 5万存银行一年利息多少 2018存款20万存3年利息会有多少 大额存单20万存一年有多少钱 10万存定期还是买理财 3万存银行一年利息多少 800万存银行一年利息多少 2万存银行一年利息多少 1000万存银行一年多少利息 一万存余额宝一天利息 三十万存银行一年利息多少 2018年20万存3年定期利息多少钱