今日刷题之进程线程、软件测试和模板(template)

目录

1.进程和线程的差别。

2.软件测试方法

1)人工测试:个人复查、抽查和会审

2)机器测试:黑盒测试和白盒测试

3.Template有什么特点么时候用/p>

1)为什么要有模板/p>

2)模板分为函数模板和类模板

3)怎么写函数模板(template)

4.模板中把特殊的类型特殊化(特化)

1)为什么出现特化/p>

2)如何写特化

3)正常的函数实现即可(函数名和正常函数模板名一样)

5.怎么写类模板

1)template和函数模板一样

2)将所有数据类型换成T

3)调用的时候将参数类型当成实参床给类模板,如下

6.类模板中的特化

1)可以不特化char*类型,系统不会报错,区别就在于不特化就没有开辟空间。只是指向了字符串。

2)想要开辟内存,存下它,所以我们特化

7.类模板和函数模板的不同

1.进程和线程的差别。

1)进程:一个正在运行的程序,有创建和终止。执行完,系统回收内存

2)线程:进程内部的一条执行路径(序列)不同语言下,线程的实现机制有所不同。

3)对线程的理解:

main函数和fun函数是两个路径,同时去执行的。叫并发运行。

4)线程是指进程内的一个执行单元,也是进程内的可调度实体。与进程的区别: ①调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 ②并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 ③拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. ④系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

5)线程分类

①用户级线程:无法用多个处理器,开销小,无法利用多处理器

②内核级线程:可以调动不同处理器上同时执行。上节课写的就是这个,开销相对用户大,可以利用多个处理器。

③组合级线程:内核空间可以创建多条线程,用户空间也能创建多个线程。

6)Linux上实现线程的方式

Linux 实现线程的机制非常独特。从内核的角度来说,它并没有线程这个概念。 Linux 把所有的线程都当作进程来实现。内核并没有准备特别的调度算法或是定义特别的数据结构来表征线程。相反,线程仅仅被视为一个与其他进程共享某些资源的进程。每个线程都拥有惟一隶凤干日己的 task _ struct ,所以在内核中,它看起来就像是一个普通的进程(只是该进程和其他一些进程共享某些资源,如地址空间)。

2.软件测试方法

1)人工测试:个人复查、抽查和会审

2)机器测试:黑盒测试和白盒测试

3.Template有什么特点么时候用/h2>

1)为什么要有模板/h3>

当几个函数只有返回值和数据类型不一样,而函数实现是一样的,避免多次重复写,我们就建立了模板

2)模板分为函数模板和类模板

3)怎么写函数模板(template)

总结:①关键字template,后面<>里面是类型参数表,可以是class T1,class T2……

②执行的时候,把实参的类型提取出来,传给T,而后T替换模板中的T,完成函数调用。

截图:

今日刷题之进程线程、软件测试和模板(template)

4.模板中把特殊的类型特殊化(特化)

1)为什么出现特化/h3>

以Max函数为例,如果要比较两个字符串的大小,是不能用大小于号比的,所以函数的实现部分和以往不一样,另外,如果还是调用普通的Max函数,那么传给T的是字符串的首地址,,并不是字符串本身。

2)如何写特化

总结:1)template<> 括号里不用写类型

3)正常的函数实现即可(函数名和正常函数模板名一样)

结果:

今日刷题之进程线程、软件测试和模板(template)

5.怎么写类模板

总结:

1)template<class T>和函数模板一样

2)将所有数据类型换成T

3)调用的时候将参数类型当成实参床给类模板,如下

结果:

今日刷题之进程线程、软件测试和模板(template)

 

6.类模板中的特化

1)可以不特化char*类型,系统不会报错,区别就在于不特化就没有开辟空间。只是指向了字符串。

2)想要开辟内存,存下它,所以我们特化

总结:1)template <>和之前一样

          2)class A<const char*>和普通的类不一样,<>里面要写参数类型

         3)类的实现

来源:我在凌晨等太阳¤

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月23日
下一篇 2022年10月23日

相关推荐