瀚云科技有限公司11月招聘面试题167道20201126

SQLServer采用的体系结构是()

A.单进程、多线程

B.多进程、单线程

C.单进程

D.以上都不是


正确答案:A


在使用多线程处理问题时,线程池设置越大越好。()

此题为判断题(对,错)。


参考答案:错误


mysql使用核心线程的完全多线程。这意味着它能很容易地利用多CPU。

A.错误

B.正确


参考答案:B


下面关于进程、线程的说法正确的是()。

A.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索

B.线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行

C.Java多线程的运行与平台相关

D.对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务


正确答案:ABCD


以下关于多线程的说法正确的是()

A.避免CPU周期的浪费

B.可以提高效率

C.可以最大限度使用CPU资源

D.符合面向过程编程思想


参考答案:ABC


瀚云科技有限公司11月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers, urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。 urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。 这是为何urllib常和urllib2一起使用的原因。 问题 Q2:写爬虫使用多进程好,还是用多线程好?可用的回答 : IO密集型代码(文件处理、网络爬虫等), 多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。 在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程 问题 Q3: scrapy的优缺点?为什么要选择scrapy框架?可用的回答 : 优点: 采取可读性更强的xpath代替正则强大的统计和log系统 同时在不同的url上爬行 支持shell方式,方便独立调试 写middleware,方便写一些统一的过滤器 通过管道的方式存入数据库 缺点: 基于python爬虫框架,扩展性比较差,基于twisted框架, 运行中exception是不会干掉reactor,并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉 问题 Q4:什么是反射?以及应用场景?可用的回答 : 通过字符串获取对象的方法称之为反射 python中可以通过如下方法实现: 1. getattr 获取属性 2. setattr 设置属性 3. hasattr 属性是否存在 4. delattr 删除属性 问题 Q5:列表的扁平化和降维?比如有一个二维列表,降成普通的一维的。如:groups = huahua, xiaojian, musen, yuze, keyou得到结果 huahua, xiaojian, musen, yuze, keyou可用的回答 : 方法一:最简单的方式可以通过 for 循环的方式一一提取: names = for group in groups: for name in group: names.append(name) print(names) 方法二:但是在面试的时候可能会加一些限制,比如让你用一行代码实现 这个时候就需要对 python 基础有进一步的理解了,比如说使用 sum 函数: names = sum(groups, ) 方法三:通过列表推导式也可以方便的解决: a = e for group in groups for e in group 问题 Q6:如何在Python中删除文件?可用的回答 :使用命令os.remove(filename) 删除文件 或 os.unlink(filename) 删除快捷方式问题 Q7:什么是PEP 8?可用的回答 :PEP 8是一个编码约定,关于如何编写Python代码更具可读性。问题 Q8:scrapy和scrapy-redis的区别?可用的回答 : scrapy是一个爬虫通用框架,但不支持分布式,scrapy-redis是为了更方便的实现scrapy分布式爬虫,而提供了一些以redis为基础的组件 为什么会选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高 什么是主从同步?在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave), 当客户端向从服务器发送SLAVEOF命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新至主服务器当前所处的数据库状态 问题 Q9:数据库的优化?可用的回答 : 1. 优化索引、SQL 语句、分析慢查询; 2. 设计表的时候严格根据数据库的设计范式来设计数据库; 3. 使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘IO; 4. 优化硬件;采用SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等; 5. 采用MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率; 6. 垂直分表;把一些不经常读的数据放在一张表里,节约磁盘I/O; 7. 主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来; 8. 分库分表分机器(数据量特别大),主要的的原理就是数据路由; 9. 选择合适的表引擎,参数上的优化; 10. 进行架构级别的缓存,静态化和分布式; 11. 不采用全文索引; 12. 采用更快的存储方式,例如 NoSQL存储经常访问的数据 问题 Q10:list和tuple有什么区别?可用的回答 :列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为词典的关键。算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:唯一路径题目描述如下:A robot is located at the top-left corner of a m x n grid (marked Start in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked Finish in the diagram below).How many possible uni

下列说法中,错误的一项是______。

A.线程有其产生、存在和消亡的过程

B.一个进程可以创建多个线程

C.Java需要利用外部的线程支持库来实现多线程

D.在Java语言中支持多线程


正确答案:C


VB代码的问题?!

怎么写能让多核CPU满载,也就是申请CPU多线程(不是任务多线程)


首先你要知道cup多核与主频之间的关系,多核不是指运行速度的关键,是多任务时分配工作,使任务合理分配使得提升运算能力,主频是CPU运算能力的参数,多核就相当于多个人工作,主频就是这些人的工作能力有多强,主频高的多核CPU那就是非常高端的了,现在4核已经很普遍了,还有六核的,CPU多线程好像听说过,是英特尔酷督I7的四核8线程CPU,那是CPU出厂固有的参数,改不了。


使用快车下载文件时,“文件分成n同时下载”就是常说的()。

A.单线程下载

B.单进程下载

C.多进程下载

D.多线程下载


正确答案:D



在下列有关WindowsXP中进程与线程的叙述中,错误的是( )

A.进程是系统资源(除CPU)分配的基本单位

B.所有系统程序的进程均运行在内核模式,所有应用程序的进程运行在用户模式

C.线程的引入,有利于提高进程内程序执行的并发性,提高处理器的利用效率

D.有些进程是单线程的,有些进程是多线程的


正确答案:B
解析:当CPU运行于内核模式时,一切程序都可运行。当处于用户模式时,运行用户的程序代码和部分系统组件。


关于多线程,下列哪个说法不正确?

A.多线程就是同时执行几个事件

B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行

C.一个进程可产生多线程,形成执行流

D.Java语言支持多线程


正确答案:A
解析:多线程不是同时执行几个事件,在某个时间上,计算机还是在执行一个事件,只是多线程将程序分为几个并行的子任务,由它们并发交叉执行。在宏观上看,好像是同时执行几个事件。

更多 “瀚云科技有限公司11月招聘面试题167道20201126” 相关考题
考题 判断题在4核CPU平台上使用多线程编程技术可以很轻易地获得400%的处理速度提升。A 对B 错正确答案:对解析:暂无解析

考题 使用快车下载文件时,“文件分成n同时下载”就是常说的()A、单线程下载B、单进程下载C、多进程下载D、多线程下载正确答案:D

考题 问答题在什么环境中,采用多内核线程的多线程方法比单处理器系统的单线程提供更好的性能。正确答案:当一个内核线程的页面发生错误时,另外的内核线程会用一种有效的方法被转换成使用交错时间。另一方面,当页面发生错误时,一个单一线程进程将不能够发挥有效性能。因此,在一个程序可能有频繁的页面错误或不得不等待其他系统的事件的情况下,多线程方案会有比单处理器系统更好的性能。解析:暂无解析

考题 问答题程序、进程和线程之间的关系是什么?什么是多线程程序?正确答案:程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。每一个进程都有自己独立的一块内存空间、一组系统资源。线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每个线程都有其产生、发展和消亡的过程。解析:暂无解析

考题 问答题什么是线程?使用多线程有哪些好处?有会带来哪些问题?正确答案:通俗地讲,线程是一个代码执行流。使用多线程的好处是:(1)多线程为多个代码执行流并发执行提供了可能。(2)多线程程序比多进程程序降低了资源占用要求。使用多线程也会对系统产生一些不利影响:(1)线程需要占用内存,线程越多,内存占用越多。(2)线程过多,会消耗大量CPU时间来跟踪线程。(3)必须考虑多线程同时访问共享资源的问题,如果没有协调好,就会产生令人意想不到的问题,例如死锁和资源竞争等。(4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的全局变量,所以程序也必须考虑多线程同时访问的全局变量问题。解析:暂无解析

考题 举两个多线程程序设计的例子,其中多线程的性能比单线程的性能差。正确答案:A.任何形式的顺序程序对线程来说都不是一个好的形式。例如一个计算个人报酬的程序。B.一个“空壳”程序,如C-shell和kornshell。这种程序必须密切检测其本身的工作空间。如打开的文件、环境变量和当前工作目录。

考题 在4核CPU平台上使用多线程编程技术可以很轻易地获得400%的处理速度提升。正确答案:错误

考题 简述编写多线程代码时要注意的问题。正确答案:(1)负载均衡(2)正确的存取共享变量(通过互斥代码或互斥锁实现)

考题 什么是线程?使用多线程有哪些好处?有会带来哪些问题?正确答案:通俗地讲,线程是一个代码执行流。使用多线程的好处是:(1)多线程为多个代码执行流并发执行提供了可能。(2)多线程程序比多进程程序降低了资源占用要求。使用多线程也会对系统产生一些不利影响:(1)线程需要占用内存,线程越多,内存占用越多。(2)线程过多,会消耗大量CPU时间来跟踪线程。(3)必须考虑多线程同时访问共享资源的问题,如果没有协调好,就会产生令人意想不到的问题,例如死锁和资源竞争等。(4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的全局变量,所以程序也必须考虑多线程同时访问的全局变量问题。

考题 关于线程以下说法错误的有()A、新起一个线程,都要使用Thread.setName(“…”)设置线程名B、在JDK1.5或更新的版本中,若字符串拼接发生在单线程环境,使用StringBufferC、对多线程访问的变量、方法,必须加锁保护,避免出现多线程并发访问引起的问题D、线程使用时,要在代码框架中使用线程池,避免创建不可复用的线程;禁止在循环中创建新线程,否则会引起JVM资源耗尽正确答案:B