栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++主线程与子线程的关系

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++主线程与子线程的关系

C++主线程与子线程的关系 一、主线程和子线程执行顺序

  在C++中main函数是程序运行便会执行,即是主线程。在此之后创建的线程属于子线程。那么问题来了,主线程和子线程谁的优先级更高?

  主线程总是能优先获得CPU资源,且主线程执行完后,程序(即进程)也就执行完了,这时子线程会被迫结束。

二、如何控制执行顺序

  如果想要先执行子线程,然后再执行子线程应该如何做?

  使用Windows.h提供的Sleep()函数。

  通俗地说,当我们调用Sleep函数时,比如Sleep(100),它会提醒系统,执行它需要花费100ms,让CPU在时间片有大于等于100ms的时间时唤醒当前进程,先执行其它线程。意味着也就是放弃它剩余的时间片(就是放弃本次运行)。但是Windows操作系统并不是一个实时的操作系统,所以就算时间片大于等于100ms也并不一定执行该线程,这取决于当前CPU正在进行什么操作。

  简单的理解为主线程如果开启Sleep函数,意味着放弃当前运行,让CPU先执行子线程。

TIPS:Sleep函数并不能保证线程按照某个顺序执行。线程和线程之间仍然是相互独立的执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号