1.python语言的GIL机制介绍

GIL (Global Intercepto Lock)全局解释器锁
首先需要明确的一点是 GIL 并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。

并行和并发同属于多任务,目的是要提高CPU的使用效率。这里需要注意的是,一个CPU永远不可能实现并行,即一个CPU不能同时运行多个程序,但是可以在随机分配的时间片内交替执行(并发),就好像一个人不能同时看两本书,但是却能够先看第一本书半分钟,再看第二本书半分钟,这样来回切换。

Guido van Rossum(吉多·范罗苏姆)创建python时就只考虑到单核cpu,解决多线程之间数据完整性和状态同步的最简单方法自然就是加锁, 于是有了GIL这把超级大锁。因为cpython解析只允许拥有GIL全局解析器锁才能运行程序,这样就保证了保证同一个时刻只允许一个线程可以使用cpu。由于大量的程序开发者接收了这套机制,现在代码量越来越多,已经不容易通过c代码去解决这个问题。
  每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行。

多线程如同客人要用包房里的厕所,一次只能一个人用。进去的人把门锁住。用完释放,下一个人接着用。
  进程如同独立包间,一个人一个包间,一个厕所够了,不需要排队,也就不需要锁了。

2.如何解决GIL锁的问题呢?

(1)更换cpython为jpython(不建议)
(2)使用多进程完成多线程的任务
(3)在使用多线程可以使用c语言去实现

3.什么时候会释放GIL锁?

(1)遇到像 I/O 操作这种 会有时间空闲情况 造成cpu闲置的情况会释放GIL
  (2)会有一个专门ticks进行计数 一旦ticks数值达到100 这个时候释放Gil锁 线程之间开始竞         争GIL锁(ticks这个数值可以进行设置来延长或者缩减获得GIL锁的线程使用cpu的时间)

4.Python进程、线程以及协程区别与联系以及应用场景

5.浏览器地址输入网址按下回车键至响应返回期间发生了什么?

6.app常见反爬手段

7.通过tcp进行数据传输的抓包策略以及分析技巧

8.web常见指纹以及对应风控梳理

后面陆续更新

Python面试题(三)(爬虫方面)相关推荐

  1. Python面试题(三)

    python面试题三 Python中类方法.类实例方法.静态方法有何区别 动态获取和设置对象的属性 Python的内存管理机制及调优手段 内存泄露是什么?如何避免 map函数和reduce函数 pri ...

  2. python 如何进行内存管理,python面试题之Python是如何进行内存管理的

    python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收. ...

  3. 金三银四,50道必备的Python面试题(建议收藏)

    在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言.在数据科学和机器学习等领域中,被广泛使用. 正值"金三银四"招聘季,小F给大家整理了 ...

  4. python学习(三)scrapy爬虫框架(二)——创建一个scrapy爬虫

    在创建新的scrapy爬虫之前,我们需要先了解一下创建一个scrapy爬虫的基本步骤 第一步:确定要爬取的数据 以爬取豆瓣电影数据为例: 每部电影所要爬取的信息有: 片名:<头号玩家> 导 ...

  5. 阿里python面试题和答案_阿里的python大牛总结10条Python面试题陷阱,中招了吗?...

    每年的3-4月份是跳槽的高峰期,无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试 ...

  6. 春招,这 110 道 Python 面试题你看了吗?

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自Python爬虫人工智能大数据 决胜春招,送你110道Python面试题,建议 ...

  7. python 笔试题 英方_4000字转型数据分析师笔试面试经验分享

    大家好,我是戴师兄~ 在上一篇文章中我分享了快速自学数据分析的经验. 本篇文章,我将跟大家分享下我的笔试和面试心得. 开头先说说我转型前的职业背景: 想看笔试面试经验的同学萌可以直接跳过这一段~ 20 ...

  8. python社招面试_百度大牛总结十条Python面试题陷阱,看看你是否会中招

    每年的3-4月份是跳槽的高峰期,无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试 ...

  9. 百度大牛总结的十条Python面试题

    每年的3-4月份是跳槽的高峰期,无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试 ...

  10. 老男孩上海校区Python面试题

    python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...

最新文章

  1. 相机定位 | cv paper整理
  2. Modelsim仿真如何查看内部信号
  3. 求字符串中最长无重复子序列
  4. 使用asyncScheduler进行Observable的延迟subscribe
  5. Vue系列vue-router的项目打包(三)
  6. SpringBoot-异常处理
  7. 图形数据库、NOSQL和Neo4j
  8. Python面试常见算法题集锦
  9. 强化学习7——梯度及梯度下降法
  10. linux中ifi_info的英文全称,linux下里面如何获取网卡的实时网速
  11. NKOJ 4234 三角分形
  12. python猜数字统计游戏次数_猜数字游戏的实现(Python3.5)
  13. uboot源码中start.S里中断向量表中不直接LDR   PC ,异常地址,而是使用一个标号
  14. 别让自大成为职场绊脚石
  15. Unity功能——设备硬件绑定(通过设备SN码)
  16. 卧槽,javaCV不到十行代码实现图片OCR文字识别
  17. C语言课程设计-实验室设备管理系统
  18. python ocr高精度识别_OCR识别-python版(一)
  19. ChessBoard棋盘覆盖问题
  20. leetcode hot100------121. 买卖股票的最佳时机--动态规划知识点

热门文章

  1. 【Java报错】多数据源mapper异常more than one `primary` bean found among candidates: [sqlSessionFactory] 问题分析解决
  2. 福步怎么自定义头像_苹果手机怎么截屏 苹果手机截屏方法有几种?原来还可以这么操作...
  3. mongodb创建用户名和密码_mongodb用studio3T进行数据备份和用户的创建
  4. Linux——Linux C语言编程基础知识
  5. Spring Security + WebSocket——@MessageMapping中Authentication为NULL解决方案之一
  6. Google Chrome —— 使用 PowerShell 命令安装 Google Chrome 浏览器
  7. springboot(2.2.4)配置druid的log4j2日志监控
  8. springboot整合websocket实现群聊
  9. 软件工程概论 课堂练习 第3次作业1【结构化系统分析——交通违章处理】
  10. axios教程01-基本使用流程