淘姐妹

淘姐妹

电源芯片与电源管理芯片的区别 主电源管理芯片和驱动芯片的区别

手机 0
电源芯片与电源管理芯片的区别,电源芯片与电源管理芯片的作用,电源芯片和电源管理芯片有什么区别,电源管理芯片技术含量

意思是通过电子放大电路或者功率放大集成电路(集成块)把微弱的电信号放大成千乃至上万倍,用来驱动喇叭发声,或者控制相关电器设备。

相同功率的LED 灯具与普通灯具,它们本身消耗的电量是一样大,但由于LED灯具的光效更高,所以LED灯具的亮度要比普通灯具的亮度要高。

同时由于LED采用的是恒流驱动,没有用镇流器,LED驱动电源的PF值要比普通灯具的高,所以相同功率的LED灯具与普通灯具相比,它们工作点亮时,LED灯具的线损要小得多(也就是对电网线路的损耗要小得多)。

目前的芯片产品越来越追求高性能,功耗的增加主要来源于“漏电”这一不可控现象。他表示,构成芯片的基本单元――晶体管可被视为一个控制电流的电子开关。它可以把功耗分成两部分,即静态功耗和动态功耗。动态功耗是指在开关过程中产生的功耗,而静态功耗是指开关在关闭时,泄漏电流产生的功耗。

为提高芯片的性能,就需要把电子开关对电流通断的控制能力提高,以加快开关的速度。这意味着,开关要在更小尺寸的情况下通过更大的电流。开关的尺寸越小,对制备工艺的要求就越高,这使得开关在关闭状态下,会有更多泄露电流。这部分产生的功耗是不可控的,是否产生功耗将直接由工艺的稳定性决定。要想使产品的性能提升,就需要更小的芯片制程,而芯片制程越小,就会为制造工艺带来更大的挑战。由于难以保障工艺的稳定性,漏电现象会愈发明显,功耗也会变大。

74HC/LS/HCT/F系列芯片的区别

1、 LS是低功耗肖特基,HC是高速COMS。LS的速度比HC略快。HCT输入输出与LS兼容,但是功耗低;F是高速肖特基电路;

2、 LS是TTL电平,HC是COMS电平。

3、 LS输入开路为高电平,HC输入不允许开路, hc 一般都要求有上下拉电阻来确定输入端无效时的电平。LS却没有这个要求

4、 LS输出下拉强上拉弱,HC上拉下拉相同。

5、工作电压不同,LS只能用5V,而HC一般为2V到6V;而HCT的工作电压一般为4.5V~5.5V。

6、电平不同。LS是TTL电平,其低电平和高电平分别为0.8和V2.4,而CMOS在工作电压为5V时分别为0.3V和3.6V,所以CMOS可以驱动TTL,但反过来是不行的

7、驱动能力不同,LS一般高电平的驱动能力为5mA,低电平为20mA;而CMOS的高低电平均为5mA;

8、 CMOS器件抗静电能力差,易发生栓锁问题,所以CMOS的输入脚不能直接接电源。

控制的对象不同。充电器主控芯片主要控制的是充电电压和充电电流。功率芯片主要是信号放大,获得比输入信号大几百倍的功率。

 1、华为海思。海思半导体有限公司成立于2004年,是全球领先的Fabless半导体芯片公司。

      2、韦尔半导体。上海韦尔半导体股份有限公司成立于2007年,是全球排名前列的中国半导体设计公司。

      3、智芯微。北京智芯微电子科技有限公司成立于2010年,是一家致力于成为以智能芯片为核心的整体解决方案提供商。

      4、闻泰科技。闻泰科技股份有限公司成立于1993年,是中国领先的移动终端和智能硬件产业生态平台。

      5、紫光展锐。上海紫光展锐科技有限公司成立于2013年,是中国集成电路设计产业的龙头企业 。

      6、中兴微。深圳市中兴微电子技术有限公司成立于2003年,是中国领先的半导体企业。

      7、长江存储。长江存储科技有限责任公司成立于2016年,是一家专注于3D NAND闪存及存储器解决方案的半导体集成电路企业。

      8、兆易创新。北京兆易创新科技股份有限公司成立于2005年,是中国领先的半导体企业。

      9、士兰微。杭州士兰微电子股份有限公司成立于1997年,是一家专注于集成电路芯片设计以及半导体微电子相关产品生产的高新技术企业。

      10、长鑫存储。长鑫存储技术有限公司成立于2017年,是中国大陆DRAM设计制造一体化企业。

芯片原理是通过芯片记录,再通过功率转发出去。先由基频晶片(BB)处理数位语音讯号,再经由调变器(Modulator)转换成高频类比讯号,由混频器(Mixer)转换成所需要的频率,由带通滤波器(BPF)得到特定频率范围(频带)的高频类比讯号(电磁波),由功率放大器(PA)增强讯号,最后由传送接收器(Tx)传送到天线输出

在使用了同等架构的情况下是5nm芯片的功耗低于7nm芯片的功耗,在芯片生产厂家当中,同等工艺制程的情况下,台积电代工生产的芯片功耗比三星代工生产的芯片功耗低,甚至台积电用上一代的工艺制程制造的芯片功耗都比三星新制程制造的芯片功耗低,高通骁龙888和8gen1翻车就是这个原因。

第一名:麒麟9905G

1、5G:麒麟990 5G SoC一体化,865是5G外挂。

2、制程:麒麟990 5G的7nm EUV,领先865的7nm一个制程时代。

3、CPU:麒麟990 5G的A76魔改,性能有了全新提升,当之无愧的性能怪兽。虽然A77比A76性能提升了20%,但是对应功耗也增加了,等手机出来看实测数据就知道了。麒麟990 5G与865性能旗鼓相当,但是却有对方难以媲美的能效比。

4、GPU:根据GFXBench 5.0最新的严苛测评,麒麟990 5G获得19分,865得21分。

5、AI算力:根据权威ETH AI-Benchmark测评,搭载自研达芬奇架构NPU的麒麟990 5G AI得分52403,865得分27758,基本只有麒麟990 5G跑分一半。

6、WiFi:麒麟990 5G搭配华为自研Hi 1103芯片最高可实现1.7Gbps峰值速率(5GHz频段支持160MHz频宽),865平台搭配高通最新【【微信】】最高可实现1.2Gbps(5GHz频段仅支持80MHz频宽),速率少了500Mbps。

第二名:麒麟990

1、在AnandTech的测试当中,AnandTech人认为麒麟990处理器的功耗表现非常好,是目前市面上最低的。

2、但是麒麟990处理器的性能仅仅略胜于高通去年发布的骁龙855处理器,甚至还不如苹果公司2017年发布的A11处理器。

3、其实麒麟990处理器的性能峰值本身是高于骁龙855的,但是发热之后就弱于骁龙855了,因为搭载骁龙855处理器的机型层次不齐、散热性能也不同。

4、另外AnandTech还指出麒麟990处理器的能耗表现比三星S10+要好,比iPhone XS要差。

5、在GPU性能测试当中,麒麟990处理器更是被苹果甩开很长一段距离。

第三名:麒麟980

1、这次的麒麟980采用了7nm制作工艺,不仅性能提升明显,甚至它为后面的手机设计提供了高多的空间。

2、我们来看看基础的参数,这次麒麟980采用了2+2+4的核心方案

3、即:2超大核(基于Cortex-A76开发)、2大核(基于Cortex-A76开发)、4小核(Cortex-A55)。

4、其实处理器有大小核之分,本就是为了让手机在不同使用场景的时候,可以调用不一样的核心

5、从而达到省电和尽量少的占用系统资源的作用。

6、这次麒麟980显然也是基于这样的考虑,只不过它把性能的需求分得更细了,原来是重度和轻度

7、现在成了重度、中度、轻度,这样可以更精准的控制手机的性能释放,以间接地达到省电、省资源的目的。

8、除了游戏和拍照之外,麒麟980还提升了数据网络的兼容性与速率

9、它支持LTE Cat.21,也就是说你以后用4G下载东西,或浏览的时候速度更快了。

第四名:麒麟820

1、麒麟820 5G是基于台积电第一代7nm工艺(N7)制造,与麒麟810一致。

2、它的CPU部分由1个A76大核(2.36Ghz)+3个A76中核(2.22Ghz)+4个A55小核(1.84Ghz)构成。官宣性能比麒麟810提高了27%,应该主要是指多核性能。

3、因为是第一代工艺,频率没有拉的很高,所以单核心性能和骁龙765G差不多,比MTK的天玑1000要差一些,处理器核心相差一代。

4、GPU部分则是Mali G57MP6,官宣性能比麒麟810提高38%。这个性能应该是有提升的,6MP比紫光的虎贲多了2个,性能比810有提升,能超过骁龙765G,但是天玑1000的G77还是没法比。

5、麒麟820 的5G基带麒麟990 5G的一样。它的ISP和NPU也都直接来自于麒麟990 5G。其中ISP升级到ISP 5.0,支持BM3D图像降噪,与麒麟990 5G完全一样。NPU则由2个大核缩减为1个。

第五名:麒麟810

1、麒麟810芯片,7nm制程工艺,CPU采用两颗A76大核心(2.27GHz)+六颗A55小核心(1.88GHz);GPU搭载了ARM Mali-G52型号图形处理器。

2、麒麟810采用了华为自研的达芬奇架构NPU,其AI性能一骑绝尘,根据官方给出的AI跑分数据来看,AI性能不仅超过了骁龙855,就连麒麟980都要望尘莫及。

3、AI性能并不如CPU和GPU表现的那么明显,但它却实实在在的可以提高使用体验,比如在场景识别、AI拍摄、图片处理、以及智能调度CPU和GPU等方面,AI性能越强,使用体验就会越好。

第六名:麒麟970

1.华为麒麟970首次集成NPU采用了HiAI移动计算架构,其AI性能密度大幅优于CPU和GPU。相较于四个Cortex-A73核心,在处理同样的AI应用任务时,麒麟970新的异构计算架构拥有大约50倍能效和25倍性能优势。这意味着,麒麟970芯片可以用更高的能效比完成AI计算任务。例如在图像识别速度上,可达到约2000张/分钟。

2.麒麟970创新设计了HiAI移动计算架构,利用最高能效的异构计算架构来最大发挥CPU/GPU/ISP/DSP/NPU的性能,同时首次集成NPU专用硬件处理单元,其加速性能和能效比大幅优于CPU和GPU。

3.一个系统级的手机芯片主要包括CPU/GPU/DSP/ISP,以及基带芯片等诸多部件。这次麒麟970依然内置了八核CPU,与上一代麒麟960相比没有任何变化。在GPU上,麒麟970则用上了ARM在2017年5月刚刚发布的Mali-G72架构,性能较Mali-G71有所提升,此外,在核心数上,麒麟970的GPU也从麒麟960的8核增加到了12核。

第七名:麒麟960

1、麒麟950处理器,采用的是ARM big.LITTLE的公版4*A72+4*A53,大小核的最高频率分别为2.30GHz和1.81GHz。

2、虽然GeekBench 4.0对海思麒麟处理器有不少加权

3、但是在最新安兔兔的跑分中我们同样能看出海思麒麟950的公版A72单核性能优于其他两款安卓旗舰SOC。

4、另外海思麒麟950的GPU为ARM MaliCT880mp4,主频为900MHz

5、麒麟960支持2*32bit的LPDDR4(1866MHz)内存,支持ufs 2.1闪存规格,,支持cat12的网络传输

6、而麒麟950/955,LPDDR4虽为32位的双通道,但是仅达到1333MHz

7、并且由于麒麟950/955的CPU总线为CCI-400,内存带宽远达不到LPDDR4(1333MHz)应有的21.3GB/s。

8、而麒麟960讲内存带宽升级到1866MHZ的双通道LPDDR4,结合A73大核的CCI-550总线布局

9、使得麒麟960的内存带宽大幅提高,安兔兔实测RAM性能达到12000分上下采用A73+A53的异构模式。

10、依然采用台积电的10nm工艺。

11、此次ARM将A73的一级缓存由48kb提升至64kb,二级缓存由A72的最大2M提升至8MB

12、并且为一级缓存和二级缓存都配备了独立的预读器,使得A73可以获得接近理论的最大带宽值。

13、并且,与A72一样,A73中配备了两个AGU,能够同时加载和存储操作。

第八名:麒麟710

1、麒麟710采用8核心设计,有四个A73核心和四个A53核心,使用了Big.Little混合架构,最高频率为2.2GHz相比麒麟659提升70%左右。

2、麒麟710采用台积电12nm工艺打造,这也是第一次华为用上了台积电的12nm工艺制程。

3、同时麒麟710搭载了四核心的Mali-G51图形处理器,官方宣称性能也有大幅度提升,而且更省电 。

4、麒麟710处理器还会支持华为GPU Turbo,并支持Google ARCore、HUAWEI AR双增强现实引擎等等AR功能。

第九名:麒麟955

1、麒麟955方面,采用了big.LITTLE八核异步架构,包括四颗A72高性能大核,主频为2.5GHz,可超频至2.8GHz;

2、同时麒麟955外加四颗A53低功耗协处理器,主频为1.8GHz;此外还提供了一颗单独的低功耗i5芯片。

3、实际体验麒麟955时,可以根据不同负荷应用场景自动调配CPU核心开关以及频率。

4、麒麟955的单线程的跑分高达2018,而多线程的成绩也达到了7313,与麒麟950处理器当初的成绩直接拉开了1000分的差距。

5、整合了Cat.16基带。

第十名:麒麟950

1、麒麟950 A72核心的频率为2.3GHz,比起Exynos 7420 A57核心高了200MHz,也就是大约10%。

2、麒麟950 NEON指令测试双线程并发读写带宽达到了38GB/s,Exynos 7420最高只有23GB/s,骁龙810更是不过19GB/s。

3、麒麟950开满四个A72核心时只消耗了3.7W,大大低于Exynos 7420的接近5.5W,而且比起麒麟925 A53核心的3.3W也增加有限。

4、麒麟950是很出色的,A72、A53核心部分的能耗比都很高,特别是最高点是Exynos 7420的足足两倍,既说明了A72的优秀,也证明了16nm FinFET+工艺的成功。

万高科技成立于2006年,是一家为能源物联网研发专用芯片的无工厂模式的半导体企业。自成立之初,万高科技就将“自主创新”作为企业的核心文化,经过多年积累,已在模拟射频电路设计、MCU设计、计量和通信算法、低功耗SoC架构设计、系统方案设计和高可靠性设计等方面累积60余项专利,连续获得2015年度,2016年度“中国专利优秀奖”,并多次承担了国家“863”重大科研课题以及国家电网的攻关项目。依托于这些技术成果,万高科技相继推出了宽量程(10000:1)的三相电能计量芯片、低功耗设计的电能计量芯片和无极性485芯片及速率达到2Mbps的高速RS-485芯片等产品,成为一家创新型IC设计企业。



前言:此文专门记载本人平时面试以及收藏的面试题目,如果有错误之处请及时指正,谢谢! ?

此文为 小说

1、python的数据类型有哪些 答:Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。 浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。

2、列表和元组的区别 答:列表是动态的,长度可变,可以随意地增删改元素。列表的存储空间略大于元组,性能略逊于元组。 元组是静态的,长度大小固定,不可以对元组元素进行增删改操作。元组对于列表更加轻量级,性能稍优。

3、字典的原理 答:python中的字典底层依靠哈希表(hash table)实现, 使用开放寻址法解决冲突, 哈希表是key-value类型的数据结构, 可以理解为一个键值需要按照一定规则存放的数组, 而哈希函数就是这个规则 字典本质上是一个散列表(总有空白元素的数组, python至少保证1/3的数组是空的), 字典中的每个键都占用一个单元, 一个单元分为两部分, 分别是对键的引用和对值的引用, 使用hash函数获得键的散列值, 散列值对数组长度取余, 取得的值就是存放位置的索引 哈希冲突(数组的索引相同), 使用开放寻址法解决 这也是python中要求字典的key必须可hash的原因 数组中1/3的位置为空, 增加元素可能会导致扩容, 引发新的散列冲突, 导致新的散列表中键的次序发生变化, 这也是字典遍历时不能添加和删除的原因 字典在内存中开销很大, 实际上是以空间换时间

4、说一下hash算法与哈希冲突 答:哈希算法:根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上的算法。也称为散列算法、杂凑算法。 哈希表:数据经过哈希算法之后得到的集合。这样关键字和数据在集合中的位置存在一定的关系,可以根据这种关系快速查询。 非哈希表:与哈希表相对应,集合中的 数据和其存放位置没任何关联关系的集合。 由此可见,哈希算法是一种特殊的算法,能将任意数据散列后映射到有限的空间上,通常计算机软件中用作快速查找或加密使用。 哈希冲突:由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。

5、怎么解决哈希冲突 答:解决哈希冲突的方法一般有:开放定址法、链地址法(拉链法)、再哈希法、建立公共溢出区等方法。(https://www.cnblogs.com/zyyhxbs/p/12408604.html)6、说下python的内存管理和垃圾回收机制

答:python的内存管理机制有三种:引用计数、垃圾回收、内存池。 引用计数:引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用时其引用计数增加1,当其不再被引用时引用计数减1,当引用计数等于0的时候,对象就被删除了 垃圾回收:引用计数、标记清除、分代回收(https://www.jianshu.com/p/892aa84e5814) 内存池:Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。 Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。 另外Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。 也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。

7、内存过大时你有什么调优手段 答:1.手动垃圾回收 2.避免循环引用(手动解循环引用和使用弱引用)3.调高垃圾回收阈值

8、请简述下python的拷贝 答:1.赋值: 只是复制了新对象的引用,不会开辟新的内存空间。 2.浅拷贝: 创建新对象,其内容是原对象的引用。 浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数。 如: lst = [1,2,3,[4,5]] 切片操作:lst1 = lst[:] 或者 lst1 = [each for each in lst] 要注意:list1=lst 和list1=lst[:]的区别 工厂函数:lst1 = list(lst) copy函数:lst1 = copy.copy(lst) 浅拷贝之所以称为浅拷贝,是它仅仅只拷贝了一层,在lst中有一个嵌套的list[4,5],如果我们修改了它,情况就不一样了。 3.深拷贝:只有一种形式,copy模块中的deepcopy函数。 和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。 深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。 #说明如下: #1.外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。 #2.无论原列表a如何变化,深拷贝d都保持不变。 #3.赋值对象随着原列表一起变化

9、请讲一下协程的原理 答:我自己暂时也不清楚,还没有自己的理解,资料如下: 运用协程机制最典型的场景就是异步IO。所谓异步,是指一段程序在执行完成前有能力“暂停”,让其他程序段执行。 从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数,所以总体上在协程中把yield看做是控制流程的方式。 协程是一个特殊的生成器,yield有返回值>生成器,yield没有>协程(没返回值就是协程) (https://www.cnblogs.com/ajianbeyourself/p/11261302.html、https://www.cnblogs.com/yc3110/p/10443108.html)

10、数据库的事务是什么 答:数据库事务是指一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性 (https://www.cnblogs.com/chaojiyingxiong/p/11029406.html、https://blog.csdn.net/x_i_xw/article/details/81408656)

11、sql的多表联查方式 答:内连接:JOIN / INNER JOIN、不等连接:ON 子句中使用了不等于运算符、自连接:一张表连接自身、左(外)连接:LEFT JOIN / LEFT OUTER JOIN、 右(外)连接:RIGHT JOIN / RIGHT OUTER JOIN、全(外)连接:FULL JOIN / FULL OUTER JOIN、交叉连接:CROSS JOIN (可用","代替)、 UNION 、UNION ALL操作符用于合并两个或多个 SELECT 语句的结果集。

12、数据库的存储过程 答:一组为了完成特定功能的SQL语句集(或者自定义数据库操作命令集), 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译:主要对存储的过程进行控制 (https://www.runoob.com/w3cnote/mys【【微信】】.html)

13、数据库的存储过程与事务的异同 答:事务是保证多个SQL语句的原子型的,也就是要么一起完成,要么一起不完成 存储过程是把一批SQL语句预编译后放在服务器上,然后可以远程调用 (https://www.jb51.net/article/158051.htm)

14、cookie与session的区别是什么 答:(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端,因为每次发起 Http 请求,都要携带有效Cookie信息,所以Cookie一般都有大小限制,以防止增加网络压力,一般不超过4k (2)cookie的存储限制了数据量,只允许4KB,而session是无限量的 (3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全 (4)设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。 (https://baijiahao.baidu.com/s?id=1619095369231494766&wfr=【【微信】】&for=pc)

15、项目中能不能只使用SESSION,不使用COOKIE 答:可以,通过重定向的形式,把session id放在url后面,但是这样做直接将把session id暴露出来了,于安全考虑不建议使用这样的方式 (https://blog.csdn.net/weixin_40648117/article/details/78844100)

16、http和https的区别 答:1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。) 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 (无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。) (https://blog.csdn.net/guolin_blog/article/details/104546558、https://blog.csdn.net/qq_【【QQ微信】】/article/details/80969419)

17、https是非对称加密还是对称加密 答:Https的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。 握手前使用非对称加密,连接后使用对称加密,因为仅使用非对称加密的话,会影响数据的传输效率 (https://blog.csdn.net/jiangshangchunjiezi/article/details/88545263)

18、启动shell脚本的方式 答:1、工作目录执行,指的是执行脚本时,先进入到脚本所在的目录(此时,称为工作目录),然后使用 https://betheme.net/dashuju/脚本方式执行 2、绝对路径中执行,指的是直接从根目录/到脚本目录的绝对路径 3、sh执行,指的是用脚本对应的sh或bash来接着脚本执行 4、shell环境执行,指的是在当前的shell环境中执行,可以使用 . 接脚本 或 source 接脚本 (https://www.jb51.net/article/161001.htm)

19、SQL与ORM的优缺点 答:相对来说,ORM的缺点就是SQL的优势地方,而优点也是SQL的劣势地方。 优点 方便的使用面向对象,语句清晰 防注入『这个其实不算ORM的核心,因为比如Phalcon的SQL形式写法也可以防注入』 方便动态构造语句,对于不同的表的相同操作采用多态实现更优雅 一定程度方便重构数据层『比如改表名,字段名等』 设置钩子函数 缺点 不太容易处理复杂查询语句 性能较直接用SQL差

20、请讲一下生产者消费者模型 答:生产者消费者模型设计要合理,如果生产者慢了,可以增加生产者,消费者慢了,增加消费者;

实际应用中,生产者,消费者可能是两套不同的系统,不会存在于一个进程里,甚至不在同一台设备上;而queue.Queue只能用于线程间通讯,那么该怎么办呢?

采用消息队列,比如rabbitMQ;

最后,上传一篇将进程线程做了很好的类比的一篇文章

计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。

假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。

进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。

一个车间里,可以有很多工人。他们协同完成一个任务。

线程就好比车间里的工人。一个进程可以包括多个线程。

车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。

可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。里面有人的时候,其他人就不能进去了。这代表一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。

一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。这就叫“互斥锁”(Mutual exclusion,缩写 Mutex),防止多个线程同时读写某一块内存区域。

还有些房间,可以同时容纳n个人,比如厨房。也就是说,如果人数大于n,多出来的人只能在外面等着。这好比某些内存区域,只能供给固定数目的线程使用。这时的解决方法,就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。后到的人发现钥匙架空了,就知道必须在门口排队等着了。这种做法叫做“信号量”(【【微信】】),用来保证多个线程不会互相冲突。

不难看出,mutex是semaphore的一种特殊情况(n=1时)。也就是说,完全可以用后者替代前者。但是,因为mutex较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。

操作系统的设计,因此可以归结为三点: (1)以多进程形式,允许多个任务同时运行;

(2)以多线程形式,允许单个任务分成不同的部分运行;

(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

21、HTTP状态码有哪些? 答:HTTP状态码总的分为五类:1开头:信息状态码、2开头:成功状态码、3开头:重定向状态码、4开头:客户端错误状态码、5开头:服务端错误状态码22、如何保障测试的充分度? 答:从代码覆盖率和业务覆盖率来定义充分度模型,代码覆盖率比较直观,业务覆盖率可以基于流量场景挖掘技术及fuzz技术来补充度量

23、自动化测试用例如何设计? 答:自动化用例的设计依据场景诉求构造合理输入及输出断言,测试用例需要满足健壮性,有效性,可扩展,时效性要求

24、如何对测试用例进行优化与提炼,精简不必要测试用例? 答:等价划分,可从代码路径,业务要素,领域模型三个方面做最大覆盖最小流量用例精简,也可以考虑在变更基础上的精准测试

25、自动化测试框架设计中的分层如何实现,有哪几类分层? 答:自动化框架设计包含数据流,执行流,数据流解决测试数据存储及使用方式,执行流定义标准测试流程,一个标准的测试框架流程应该是数据清理,数据准备(入参,db,外部依赖),结果验证

26、如何准备完整的测试数据? 答:这个问题没啥可答的,要让一个用例能够符合预期就需要构造合理的输入,数据准备,需要依赖对于系统设计及业务的了解,没啥方法,但是可以借助实时流量提供准备数据效率

27、自动化测试执行前后,分别需要进行何种操作,以确保自动化不会影响系统运行? 答:用例运行可独立部署集群或者线下集群,一般很少在生产环境运行

28、如何基于Mock实现数据结果的返回,实现外部接口的测试? 答:mockito这些工具类可以看一下,也可以写*构造返回对象

29、如何评判系统是否具备可测性? 答:这个问题比较广泛,我需要点时间整理出来

30、自动化测试执行中,如何对多个用例进行并发运行? 答:并发运行testng具备,其余的可看一下jenkins的多job或者自己写并发调度

31、在较大自动化用例运行压力下,如何实现自动化测试框架的分布式集群? 答:要做到这个点用例需要具备隔离性,其余的均衡调度就可以了

32、【【淘密令】】 中 hidden 或者是 display = none 的元素是否可以定位到? 答:不能,可以写 Ja【【微信】】 将标签中的 hidden 先改为 0,再定位元素

33、【【淘密令】】 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的? 答: 1.添加元素智能等待时间 driver.【【微信】】(30) 2.添加强制等待时间(比如 python 中写 sleep) 3.try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种 3.如何提高 【【淘密令】】 脚本的执行速度? 代码优化,多任务,分布式部署都是可以提升脚本执行速度的。

34、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性? 答: 1.time.sleep( ) 2.driver.【【微信】】(30) 3.多用 try 捕捉,处理异常

35、你的自动化用例的执行策略是什么? 答:自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试的应用软件)并输出测试结果

36、自动化测试的时候是不是需要连接数据库做数据校验? 答:从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数据处理逻辑正常后,UI 层面上的校验也是需要做的。

37:id,name,class,xpath, css selector 这些属性,你最偏爱哪一种,为什么? 答:css 、xpath 几乎所有的元素都可以定位到,