A.单进程、多线程
B.多进程、单线程
C.单进程
D.以上都不是
此题为判断题(对,错)。
A.错误
B.正确
下面关于进程、线程的说法正确的是()。
A.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索
B.线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行
C.Java多线程的运行与平台相关
D.对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务
A.避免CPU周期的浪费
B.可以提高效率
C.可以最大限度使用CPU资源
D.符合面向过程编程思想
瀚云科技有限公司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语言中支持多线程
怎么写能让多核CPU满载,也就是申请CPU多线程(不是任务多线程)
使用快车下载文件时,“文件分成n同时下载”就是常说的()。
A.单线程下载
B.单进程下载
C.多进程下载
D.多线程下载
在下列有关WindowsXP中进程与线程的叙述中,错误的是( )
A.进程是系统资源(除CPU)分配的基本单位
B.所有系统程序的进程均运行在内核模式,所有应用程序的进程运行在用户模式
C.线程的引入,有利于提高进程内程序执行的并发性,提高处理器的利用效率
D.有些进程是单线程的,有些进程是多线程的
关于多线程,下列哪个说法不正确?
A.多线程就是同时执行几个事件
B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行
C.一个进程可产生多线程,形成执行流
D.Java语言支持多线程