
python
文章平均质量分 50
python基础
Gamble6
Settle down
展开
-
Python—多线程按顺序执行
定义三个线程ID分别为ABC,每个线程打印10遍自己的线程ID,按ABCABC……的顺序进行打印输出。 from threading import Thread, Lock # 由_acquire解锁执行后释放_release锁 def func(_id: str, _acquire: Lock, _release: Lock) -> None: for i in range(10): _acquire.acquire() print(f"id:{_原创 2021-07-22 16:13:19 · 914 阅读 · 0 评论 -
Python—基础
Python: 不可变的对象:Numeber数字、String字符串、Tuple元组 可变的对象:List列表、Set集合、Dict字典 可迭代的对象:列表、元组、字典、集合。——enumerate等循环可迭代。 初始化:元组 a=(),单个元素时注意逗号 a=(1,) 列表 a=[] 集合 a=set() 字典 a={} 数组和列表的区别: 数组内的数据类型必须一样,列表内的数据类型可以不一样。 相对于数组,列表会...原创 2021-07-09 16:26:01 · 77 阅读 · 0 评论 -
Python——协程
一、进程和线程: 对操作系统来说,线程是最小的执行单元(消耗CPU),进程是最小的资源管理单元(消耗内存)。 线程之间的协作存在痛点,耗费性能: 1.同步锁。 2.线程阻塞状态和可运行状态之间的切换。 3.线程上下文的切换。 二、协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。 !!!协程不是被操作系统内核所管理,而完全是由程序...原创 2021-06-22 16:13:21 · 141 阅读 · 0 评论 -
Python 产生随机数/打乱数组
一.Python自带的random库 1.参生n--m范围内的一个随机数:random.randint(n,m) 2.产生0到1之间的浮点数:random.random() 3.产生n---m之间的浮点数:random.uniform(1.1,5.4) 4.产生从n---m间隔为k的整数: random.randrange(n,m,k) 5.从序列中随机选取一个元素:random.choice([1, 2, 3...原创 2021-06-17 22:10:35 · 2055 阅读 · 0 评论 -
python——浅谈多线程
一、GIL的全称是Global Interpreter Lock(全局解释器锁) 在Python多线程下,每个线程的执行方式: (1)获取GIL (2)执行代码直到sleep或者是Python虚拟机将其挂起 (3)释放GIL 注意: (1)Python中一个线程对应于c语言中的一个线程,gil使得同一时刻只有一个线程在一个CPU上执行字节码,无法将多个线程映射到多个CPU上执行; (2)GIL会根据执行的字节码行数以及时间片释放GIL,GIL在遇到IO的操作时候主动释放。 二、python多线程介绍 (1)原创 2021-06-11 00:02:01 · 469 阅读 · 3 评论