文章目录
- 一、Python-GIL(全局解释器锁)
- 二、高级编程技巧总结
-
- 1.区别可变数据类型和不可变数据类型
- 2.Python垃圾回收机制
- 3.Python中函数或成员变量包含单下划线前缀结尾和双下划线前缀结尾的区别
- 4.判断一个对象是函数还是方法
- 5.super函数的用法
- 6.使用isinstance和type的区别
- 7.创建大量实例节省内存
- 8.上下文管理器
- 9.判断一个对象中是否具有某个属性
- 10.property动态属性的使用
- 11.使用type创建自定义类
- 12.生成器的创建
- 13.TCP和UDP的区别
- 14.TCP服务端通信流程
- 15.创建线程的两种方式
- 16.线程资源竞争,以及解决方案
- 17.死锁出现的原因
- 18.进程之间的通信,以及进程池中的进程通信
- 19.同步、异步、阻塞、非阻塞
- 20.进程、线程、协程对比
- 21.Python GIL的概念,以及它对Python多线程的影响
一、Python-GIL(全局解释器锁)
面试题:
描述Python GIL的概念,以及它对Python多线程的影响
在Linux中执行
(1)主线程死循环
while True:
pass
通过htop查看CPU使用情况,相当于Windows中的任务管理器。
显示:
运行之后CPU占满,利用率100%。
(2)2个线程死循环
import threading