线程的创建和启动
2017-03-09 22:49
127 查看
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/的应用篇
相关文章推荐
- Java线程:创建与启动
- linux内核启动(2)——2.2.创建和中止任务与内核线程
- python多线程编程(2): 线程的创建、启动、挂起和退出
- Java线程:创建与启动
- Java线程:创建与启动
- 线程的创建和启动
- 创建和启动java线程
- 马士兵J2SE-第九章-多线程机制-线程的创建与启动
- Java线程:创建与启动
- Java线程的创建和启动
- Java线程:创建与启动
- Java线程:创建与启动
- day10 反射创建数组 线程的基本概念 线程的编写和启动方式 线程的运行状态以及状态转换方法 线程的调度和优先级设置
- 线程控制——创建、启动及终止
- java线程的创建,启动,执行
- 多线程示例(一) 线程的创建与启动
- 线程的创建和启动
- Java线程:创建与启动
- Python多线程编程(2): 线程的创建、启动、挂起和退出
- Java线程:创建与启动