线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位。进程:是资源分配的基本单位。一个进程包括多个线程。
一个应用程序至少包括1个进程,而1个进程包括1个或多个线程,线程的尺度更小。每个进程在执行过程中拥有独立的内存单元,而一个线程的多个线程在执行过程中共享内存。
2.区别
(1)线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。(2)每个进程都有自己一套独立的资源(数据),供其内的所有线程共享。(3)不论是大小,开销线程要更“轻量级”。(4)一个进程内的线程通信比进程之间的通信更快速,有效。(因为共享变量)。
什么兼容性?
web项目中使用浏览器渲染数据,浏览器有不同。服务器,数据库不同,编程语言不同。凡是不同引起问题,兼容性问题。
面试官:你说到有进行浏览器兼容性的测试,那么你是选择哪些浏览器进行测试,为什么这么选择呢?
IE、360(兼容模式)、搜狗(兼容模式)(Trident内核)
Firefox(Gecko内核)
Chrome、360(极速模式)、搜狗(极速模式)(Blink内核)
Apple Safari(WebKit内核)
1、IE浏览器:
IE是微软公司旗下浏览器,是目国内用户量最多的浏览器。IE诞生于1994年,当时微软为了对抗市场份额占据将近百分之九十的网景Netscape Navigator,于是在Windows中开发了自己的浏览器Internet Explorer,自此也引发了第一次浏览器大战。结果可想而知,微软大获全胜,网景不得不将自己卖给AOL公司。但实际上事情并没有结束,网景后来开发了风靡一时的Firefox火狐,至今Firefox也成为世界五大浏览器之一。
1996年,微软从Spyglass手里拿到Spyglass Mosaic的源代码和授权,开始开发自己的浏览器IE。后来,微软以IE和Windows捆绑的模式不断向市场扩展份额,使IE成为市场的绝对主流。现在装了Windows系统的电脑基本无法卸载IE。
2、Opera浏览器:
Opera是挪威Opera Software ASA公司旗下的浏览器。1995年,opera公司发布第一版Opera浏览器,使用自己研发的Presto内核。当时opera公司的开发团队不断完善Presto内核,使Opera浏览器一度成为顶级浏览器。直到2016年奇虎360和昆仑万维收购了Oprea浏览器,从此也丢弃了强大的Presto内核,改用当时Google开源的webkit内核。后来Opera浏览器跟随Google将浏览器内核改为Blink内核。自此Presto内核也淡出了互联网市场。
3、Safari浏览器:
第二次浏览器大战是从苹果公司发布Safari浏览器开始的。2003年,苹果公司在苹果手机上开发Safari浏览器,利用自己得天独厚的手机市场份额使Safari浏览器迅速成为世界主流浏览器。Safari是最早使用webkit内核的浏览器也是现在苹果默认的浏览器。
4、Firefox浏览器:
Firefox浏览器使Mozilla公司旗下浏览器,也是刚才提到的网景公司后来的浏览器。网景被收购后,网景人员创办了Mozilla基金会,这是一个非盈利组织,他们在2004年推出自己的浏览器Firefox。Firefox采用Gecko作为内核。Gecko是一个开源的项目,代码完全公开,因此受到很多人的青睐。Firefox的问世加快了第二次浏览器大战的开始。第二次浏览器大战与第一次二元鼎力的局面不同,这一次的特点就是百家争鸣,也自此打破了IE浏览器从98年网景被收购后独步浏览器市场的局面。
5、Chrome浏览器:
Chrome浏览器是google旗下的浏览器。Chrome浏览器至发布以来一直讲究简洁、快速、安全,所以Chrome浏览器到现在一直受人追捧。最开始Chrome采用webkit作为浏览器内核,直到2013年,google宣布不再使用苹果的webkit内核,开始使用webkit的分支内核Blink。
以上是五大浏览器的简介,接下来是四大内核。在介绍五大浏览器的同时也已经顺便介绍了四大内核。四大内核分别是:Trident(也称IE内核)、webkit、Blink、Gecko。五大浏览器采用的都是单内核,而随着浏览器的发展现在也出现了双内核。像360浏览器、QQ浏览器都是采用双内核。
兼容性测试的重点?
页面的格式、字体、输入框、下拉框、复选框、按钮等的检查;
检查页面是否显示正常
1.测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容
2.软件本身能否向前或向后兼容
主要指的是能否兼容不同版本的数据
3.测试软件能否与其他相关的软件兼容
例如杀毒软件,文字处理软件,办公软件之间的兼容性
4.被测软件与标准外设的兼容
例如打印机
5.程序与运行支撑平台版本之间的兼容性
例如是否可以兼容不同的JDK版本,或不同的framework版本等
6.程序与应用服务器之间的兼容性
是否支持不同的应用服务器产品,或支持同一应用服务器的不同版本
7.各个浏览器之间的兼容性
主要是指的B/S架构中,与浏览器各种内核之间的兼容性问题
8.各种屏幕分辨率之间的兼容性
9.不同的网络环境中的兼容性
10.数据库之间的兼容性
不同的数据库之间的数据迁移问题
11.不同版本程序数据文件之间的兼容性
同一数据库在不同版本的软件上是否能够迁移
12.整机的兼容性
例如在本机能安装使用,在其他配置机器能否正常使用
13.其他软件的数据兼容性
即别的软件中的数据文件能否经进行处理
14.低版本软件生成的文件,高版本软件是否能够打开
15.如果是C/S系统,能否支持低版本的客户端程序访问高版本的服务器端或者是否支持高版本的服务器端程序访问低版本的服务器端
16.如果是C/S系统,是否允许不同版本的客户端与同一个服务器进行通信
17.如果是C/S系统,是否允许不同版本的客户端之间进行通信
18.当前软件系统生成的文件或数据是否可以在其他软件中被打开
19.是否支持同时安装或运行两个不同版本的软件
20.不同版本的软件系统是否能够支持以往的数字证书或硬件加密狗等安全校验文件
21.新版本的系统是否和老的应用插件相兼容