大唐高鸿数据网络技术股份有限公司4月招聘面试题183道202045

resume( )方法恢复哪些线程的执行?

A.通过调用stop( )方法而停止的线程

B.通过调用sleep( )方法而停止运行的线程

C.通过调用wait( )方法而停止运行的线程

D.通过调用suspend( )方法而停止运行的线程


正确答案:D
解析: Thread的API文档说明此方法恢复被挂起的线程。首先调用此线程的无参数的 checkAccess( )方法,这可能在当前线程上抛出SecurityException异常,如果此线程是活动的但被挂起,它将被恢复并继续其执行进程。


在以下( ),线程就进入可运行状态。

A.线程调用了sleel()方法时

B.线程调用了join()方法时

C.线程调用了yield()方法时

D.以上都是


正确答案:C


下列关于线程的说法中,正确的是

A.一个线程一旦被创建,就立即开始运行

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

C.当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可运行线程队列的前面

D.当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态


正确答案:B
解析:线程被创建后,如果调用start()方法,线程便处于就绪状态,即可执行状态,但并不一定立即得到执行。当调用了yield()方法之后,线程放在处于同一个优先级的可执行的线程队列的后面。当阻塞的线程获得锁后,将进入就绪状态,并不一定立即执行。


创建一个线程之后,通过调用该线程对象的______方法将潜入该线程的虚拟CPU置于可运行状态。


正确答案:start()
start()


下列哪个选项不能使当前线程停止执行()。

A.一个异常被抛出

B.线程执行了sleep()调用

C.高优先级的线程处于可运行状态

D.当前线程产生了一个新线程


参考答案:D


大唐高鸿数据网络技术股份有限公司4月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:简单谈下GIL?可用的回答 : Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制, Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。 对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。 在多线程环境中,Python 虚拟机按以下方式执行: 1. 设置GIL 2. 切换到一个线程去运行 3. 运行: a. 指定数量的字节码指令,或者 b. 线程主动让出控制(可以调用time.sleep(0)) 4. 把线程设置为睡眠状态 5. 解锁GIL 6. 再次重复以上所有步骤 在调用外部代码(如C/C+扩展函数)的时候,GIL 将会被锁定, 直到这个函数结束为止(由于在这期间没有Python 的字节码被运行,所以不会做线程切换)。 问题 Q2: Tornado 的核心是什么?可用的回答 : Tornado 的核心是 ioloop 和 iostream 这两个模块, 前者提供了一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。 通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket, 再搭配相应的回调函数,便可达到梦寐以求的高效异步执行。 问题 Q3:遇到反爬机制怎么处理?可用的回答 : 反爬机制: headers方向 判断User-Agent、判断Referer、判断Cookie。 将浏览器的headers信息全部添加进去 注意:Accept-Encoding;gzip,deflate需要注释掉 问题 Q4:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q5:如何将数字转换为字符串?可用的回答 :要将数字转换为字符串,请使用内置函数str()。如果需要八进制或十六进制表示,请使用内置函数oct()或hex()问题 Q6:list和tuple有什么区别?可用的回答 :列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为词典的关键。问题 Q7:Python中的docstring是什么?可用的回答 :Python文档字符串称为docstring,它是一种记录Python函数,模块和类的方法。可以通过内置方法_doc_获取问题 Q8:简述 三次握手、四次挥手的流程?可用的回答 : 三次握手: 初始状态:客户端A和服务器B均处于CLOSED状态,然后服务器B创建socket,调用监听接口使得服务器处于LISTEN状态,等待客户端连接。(后续内容用A,B简称代替) 1、A首先向B发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的), 消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1, 然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后, B进 入SYN_RCVD状态,与连接消息一样,这条消息也不能携带数据,同时消耗一个序号。 3、A收到B的确认消息后,需要给B回复确认数据,这时TCP头部中的ACK标识位值为1, 确认序号是ack=y+1,自己的序号在连接请求的序号上加1,也就是seq=x+1, 此时A进入ESTABLISHED状态,当B收到A的确认回复后,B也进入ESTABLISHED状态, 至此TCP成功建立连接,A和B之间就可以通过这个连接互相发送数据了。 四次挥手: 初始状态:客户端A和服务器B之间已经建立了TCP连接,并且数据发送完成,打算断开连接, 此时客户端A和服务器B是等价的,双方都可以发送断开请求,下面以客户端A主动发起断开请求为例。(后续内 容用A,B简称代替) 1、A首先向B发送断开连接消息,这时TCP头部中的FIN标识位值为1,序号是seq=m,m为A前面正常发送数据最后一个字节序号加1得到的, 消息发送后A进入FNI_WAIT_1状态,FIN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的断开连接请求需要发出确认消息,这时TCP头部中的ACK标识位值为1,确认号为 ack=m+1, 而自己的序号为seq=n,n为B前面正常发送数据最后一个字节序号加1得到的, 然后B进入 CLOSE_WAIT状态,此时就关闭了A到B的连接, A无法再给B发数据,但是B仍然可以给A发数据,同时B端通知上方应用层,处理完成后被动关闭连接。 然后A收到B的确认信息后,就进入了 FIN_WAIT_2状态。 3、B端应用层处理完数据后,通知关闭连接, B向A发送关闭连接的消息,这时TCP头部中的FIN和ACK标识位值均为1, 确认号ack=m+1,自己的序号为seq=k,消息发送后B进入LACK_ACK状态。 4、A收到B的断开连接的消息后,需要发送确认消息, 这是这时TCP头部中的ACK标识位值为1,确认号ack=k+1,序号为m+1(因为A向B发送断开连接的消息时消耗了一个消息号), 然后A进入TIME_WAIT 状态,若等待时间经过2MSL后,没有收到B的重传请求, 则表明B收到了自己的确认,A进入CLOSED状态, B收到A的确认消息后则直接进入CLOSED状态。至此TCP成功断开连接。 问题 Q9:cookie 和session 的区别?可用的回答 : 1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

为应用程序开发人员上班Certkiller.com。您需要修改应用程序的代码。应用程序使用两个线程命名线程A和线程B.要完成执行之前线程开始执行线程B。您将如何完成这项任务?()

A.定义线程A在较低的优先级运行。

B.定义线程B在更高的优先级运行。

C.执行WaitCallback委托来同步线程。

D.调用线程A睡眠的方法

E.调用线程A自旋锁的方法


参考答案:C


以下多线程程序的设计步骤,其中错误的是()

A.在主程序中创建线程对象;

B.调用线程对象的start函数来启动线程;

C.在Windows中注册一个现成;

D.由Thread类派生出一个线程类;


参考答案:C


在以下什么情况下,线程就进入可运行状态? ( )

A.线程调用了sleep()方法时

B.线程调用了join()方法时

C.线程调用了yield()方法时

D.以上都是


正确答案:C


下列说法正确的是()。

A.线程的终止一般可通过两种方法来实现,自然撤销(线程执行完)或是被停止(调用stop()方法)

B.一个暂时终止运行的线程(例如,睡眠或阻塞)在排除了终止原因后直接运行

C.一个线程因为输入输出操作被阻塞时,执行resume()方法可以使其恢复就绪状态

D.调用了suspend()方法,也可以使线程进入死亡状态


正确答案:A


resume()力法恢复哪些线程的执行

A.通过调用stop()方法而停止的线程

B.通过调用sleep()方法而停止运行的线程

C.通过调用wait()方法而停止运行的线程

D.通过调用suspend()方法而停止运行的线程


正确答案:D
解析:本题考查resume()方法的使用。在Thread的API文档中的说明是该方法恢复被挂起(suspend)的线程。该方法首先调用该线程的无参的checkAccess()方法,这可能在当前线程上抛出SecurityException异常,如果该线程是活着的(alive)但被挂起(suspend),它被恢复并继续它的执行进程。

更多 “大唐高鸿数据网络技术股份有限公司4月招聘面试题183道202045” 相关考题
考题 一个线程可以调用yield方法使其他线程有机会运行。正确答案:正确

考题 在以下()情况下,线程就进入可运行状态A、 线程调用了sleep()方法时B、 线程调用了join()方法时C、 线程调用了yield()方法时D、 以上都是正确答案:C

考题 创建好线程对象之后并不意味着这个线程就会被处理机(JMV)运行,还需要调用线程对象的()方法启动线程。正确答案:start()

考题 多选题以下关于线程的运行,暂停,结束的描述中,错误的是()。AThead类的sleep静态函数可以使线程休眠一段时间Bwait函数会使线程处于等待状态,作用与sleep函数相同C一个线程不需要特别的代码来中止它,当run函数中的代码都执行完了以后,线程就自然中止了D线程的启动通过线程类(或者其子类)的start函数来实现E调用stop函数使线程停止正确答案:E,D解析:暂无解析

考题 为应用程序开发人员上班Certkiller.com。 您需要修改应用程序的代码。 应用程序使用两个线程命名线程A和线程B.要完成执行之前线程开始执行线程B。 您将如何完成这项任务?()A、定义线程A在较低的优先级运行。B、定义线程B在更高的优先级运行。C、执行WaitCallback委托来同步线程。D、调用线程A睡眠的方法E、调用线程A自旋锁的方法正确答案:C

考题 以下关于线程的运行,暂停,结束的描述中,错误的是()。A、Thead类的sleep静态函数可以使线程休眠一段时间B、wait函数会使线程处于等待状态,作用与sleep函数相同C、一个线程不需要特别的代码来中止它,当run函数中的代码都执行完了以后,线程就自然中止了D、线程的启动通过线程类(或者其子类)的start函数来实现E、调用stop函数使线程停止正确答案:B,E

考题 单选题为应用程序开发人员上班Certkiller.com。 您需要修改应用程序的代码。 应用程序使用两个线程命名线程A和线程B.要完成执行之前线程开始执行线程B。 您将如何完成这项任务?()A 定义线程A在较低的优先级运行。B 定义线程B在更高的优先级运行。C 执行WaitCallback委托来同步线程。D 调用线程A睡眠的方法E 调用线程A自旋锁的方法正确答案:A解析:暂无解析

考题 在以下( )情况下,线程就进入可运行状态。A.线程调用了sleep()方法时B.线程调用了join()方法时C.线程调用了yield()方法时D.以上都是正确答案:C

考题 以下多线程程序的设计步骤,其中错误的是()A、在主程序中创建线程对象;B、调用线程对象的start函数来启动线程;C、在Windows中注册一个现成;D、由Thread类派生出一个线程类;正确答案:C

考题 单选题在以下()情况下,线程就进入可运行状态A线程调用了sleep()方法时B线程调用了join()方法时C线程调用了yield()方法时D以上都是正确答案:A解析:暂无解析