C/C++教程

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

本文主要是介绍C++主线程与子线程的关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

一、主线程和子线程执行顺序

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

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

二、如何控制执行顺序

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

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

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

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

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

这篇关于C++主线程与子线程的关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!