A 利用线程并行地执行矩阵乘法运算。
B web服务器利用线程请求http服务
C 键盘驱动程序为每一个正在运行的应用配备一个线程,用来响应相应的键盘输入。
D 基于GUI的debugger用不同线程处理用户的输入、计算、跟踪等操作。
A.multiprocess.dummy
B.threading.Thread
C.process
D.PyMongoDB
A.
B.
C.
D.
A.
B.
C.
D.
A.错误
B.正确
京东数字科技控股股份有限公司1月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q2:如何在Python中实现多线程?可用的回答 :Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快问题 Q3:如何在Python中内存管理?可用的回答 :Python内存由Python私有堆空间管理。 所有Python对象和数据结构都位于私有堆中。 程序员无权访问此私有堆,解释器负责处理此私有堆。 Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。 Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。问题 Q4:scrapy和requests的使用情况?可用的回答 : requests 是 polling 方式的,会被网络阻塞,不适合爬取大量数据 scapy 底层是异步框架 twisted ,并发是最大优势 问题 Q5:什么是Python中的迭代器?可用的回答 :在Python中,迭代器用于迭代一组元素,如列表之类的容器。问题 Q6:分布式爬虫主要解决什么问题?可用的回答 : 面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作。它的开发效率是比较快而且简单的。 问题 Q7:列举面向对象中带双下划线的魔术方法可用的回答 : _doc_ 表示类的描述信息 _module_ 表示当前操作的对象在哪个模块 _class_ 表示当前操作的对象的类是什么 _init_ 构造方法,通过类创建对象时,自动触发执行 _new_负责创建一个类的对象 _del_ 析构方法,当对象在内存中被释放时,自动触发执行 _call_ 对象后面加括号,触发执行 _dict_ 类或对象中的所有成员 _str_如果一个类中定义了_str_方法,那么在打印 对象 时,默认输出该方法的返回 问题 Q8: Django重定向你是如何实现的?用的什么状态码?可用的回答 : 使用HttpResponseRedirect redirect和reverse 状态码:302,301 问题 Q9:Django 本身提供了 runserver,为什么不能用来部署?可用的回答 : runserver 方法是调试 Django 时经常用到的运行方式, 它使用 Django 自带的 WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi、http 等协议。 注意 uwsgi 是一种通信协议,而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的 Web 服务器。 uWSGI 具有超快的性能、低内存占用和多 app 管理等优点, 并且搭配着 Nginx就是一个生产环境了,能够将用户访问请求与应用 app 隔离开,实现真正的部署 。 相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。 问题 Q10:什么是反射?以及应用场景?可用的回答 : 通过字符串获取对象的方法称之为反射 python中可以通过如下方法实现: 1. getattr 获取属性 2. setattr 设置属性 3. hasattr 属性是否存在 4. delattr 删除属性 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:落单的数题目描述如下:Given a non-empty array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?Example 1:Input: 2,2,1Output: 1Example 2:Input: 4,1,2,1,2Output: 4给定一个非空数组,除了一个元素外,其余均出现两次。找出它。需要在线性时间内,且不用额外空间。用到了 missing number 的思路,利用异或的性质,相同的异或会抵消掉。直接在原数组上操作,用了 i 变量,一个变量都不用要怎么写?Discuss里也没找到相关的。测试地址:https:/ Solution(object): def singleNumber(self, nums): :type nums: Listint :rtype: int for i in range(1, len(nums): numsi = numsi numsi-1 return nums-1算题题 A1:二叉树中最小公共祖先题目描述如下:Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest
下面关于进程、线程的说法正确的是()。
A.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索
B.线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行
C.Java多线程的运行与平台相关
D.对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务
下列不属于虚拟机执行过程的特点的是( )。
A.多线程
B.动态连接
C.异常处理
D.代码安全检查
下列说法中,错误的一项是 ( )
A.线程是程序中的一个执行流
B.多线程是程序中的多个执行流
C.线程是进程的一次动态执行过程
D.进程是程序的一次动态执行过程
下列说法中,错误的是( )。
A.线程就是程序
B.线程是一个程序的单个执行流
C.多线程是指一个程序的多个执行流
D.多线程用于实现开发
下列说法中,错误的一项是______。
A.线程有其产生、存在和消亡的过程
B.一个进程可以创建多个线程
C.Java需要利用外部的线程支持库来实现多线程
D.在Java语言中支持多线程