线程的创建和启动

    xiaoxiao2021-03-25  80

    A01-03  线程的创建和启动

    (1)定义一个MyTask类,并继承于OS_Thread,重写线程主函数Routine()

    (2)使用这个类

    //注:在大多数操作系统上,线程的创建和启动是一个连续的动作 MyTask task; task.Run(); //创建并启动线程 //task.Routine(); 这是函数的调用,是一个 参考A01-01中的例子

    打开资源监视器,观察test1_1.exe

    当程序开始运行,进入main()时,线程数为1;

    当程序运行完a.Run()时,线程数为2;

    当程序运行完b.Run()时,线程数为3。

    OS会根据要求,创建一个线程实体来运行,线程的主函数就是Routine();

    线程的两种语境:

    ①OS_Thread:是一个C++类(对象),封装了线程相关的数据和操作。

    ②线程实体:由操作系统创建的实体,通常我们说的线程就是指的这个实体,它是一个运行的概念。

    MyTask task; //这里只是创建了一个c++的对象 task.Run(); //这里线程才被真正的创建

    注意:

    ①一个进程中的最大线程是有限制的,视具体的操作系统而定

    ②在工程实践中,一般线程最多为几十个。线程不宜过多,因为线程调度本身也是有成本的。

    注:关于博客中的第三方库"osapi",可以通过访问http://www.afanihao.cn的共享代码模块中获

    详情请参见http://www.afanihao.cn/的应用篇

    转载请注明原文地址: https://ju.6miu.com/read-17231.html

    最新回复(0)