App Annie面试Python研发岗位 七月十一日

App Annie:

北京三里屯,小外企

1.GIL(全局解释锁)

是为了解决多线程之间的数据完整性以及状态同步,在解释器层面加锁。通过解释器的分时复用,来实现执行多线程程序,只有拿到锁的线程结束,才能执行下一个线程。

扩展:
互斥锁和GIL锁的关系
互斥锁:多线程时,保证修改共享数据时有序修改,不会产生数据修改混乱。
GIL锁:保证同一时刻只有一个线程能够使用CPU
解决GIL的办法:
1.使用别的解释器 Jpython
2. 用多进程代替多线程。使用multiprocessing代替Threading模块
什么时候释放GIL:
1.遇到像I/O这种操作的时候,会有空闲时间造成CPU空闲情况
2.会有一个专门的tick计数器,一旦tick数值到达100释放GIL锁,线程之间再次竞争GIL锁

2.Scrapy框架中怎么实现多线程的

基于异步框架Twisted,其实我也不会,胡诌就完事了,面试官好像很无语,我记得框架原理中,有一个调度器,将引擎发送过来的request请求传送到调度器中,调度器是用队列的方式实现的,所以自己给自己挖坑。

3.给你一个正整数,怎么判断奇数偶数?

首先想到当然是取余咯,面试官说性能不好,
我但是蠢了没想到使用二进制判断最后一位。。。。

4.HTTP协议(200、304、403、404)

HTTP协议是超文本传输协议的缩写,HTTP协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信。
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。(当今多数服务器支持Keep-Alive功能,使用服务器支持长连接,解决无连接的问题)
无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后,不会记录信息。(使用 cookie 机制可以保持 session,解决无状态的问题)

5.Cookie和Session的区别

Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie 的首部字段信息,通知客户端保存Cookie。 当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端发现客户端发送过来的Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求, 然后对比服务器上的记录, 最后得到之前的状态信息。
Session主要是讲先前用户信息记录在服务器端,并且生成唯一的Session-ID号,客户端仅仅需要在每次访问的时候,提供对应的ID号码,即可从服务器获取先前存储的对应信息

6. 给我一下录用你的理由 5min

从个人的学习能力以及自己的发展方向与公司类似讲起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值