当前位置: 主页 > Python语言

python 多线程进度条-python 等待线程结束

发布时间:2023-02-10 09:16   浏览次数:次   作者:佚名

1.1 microthread (tasklet, green thread, greenlet) 1.2 collections module deque

Deque(双向队列)是栈和队列的通用实现。 Deque是“双端队列”的缩写; deque支持线程安全的,在deque的两端有效的内存插入和删除,性能大约为O(1) 元素python 多线程进度条,虽然list也支持类似的操作,但是主要针对定长操作进行了优化,所以有O(n ) 在 pop(0) 和 insert(0,v) 上(这将改变数据的位置和大小)时间复杂度。

方法

阐明

附加()

从右边添加元素(同列表)

追加左()

从左边添加元素

延长()

从右边开始逐一添加可迭代对象(同list)

向左延伸()

python 多线程进度条_python 等待线程结束_python 线程超时

从左往右逐个添加可迭代对象

流行音乐()

从列表中移除一个元素(默认最右边的元素),并返回该元素的值(同list),如果没有元素,会报IndexError

左旋()

移除列表中的一个元素(默认最左边的元素),并返回该元素的值,如果没有元素会报IndexError

数数()

统计队列中的元素个数(同list)

插入(索引,对象)

在指定位置插入一个元素(同list)

旋转(n)

python 线程超时_python 多线程进度条_python 等待线程结束

rotate(n),从右边开始反转n步,如果n为负数,从左边开始反转

清除()

删除双端队列中的所有元素,最终长度为0

消除()

删除第一次出现的元素,如果未找到则引发 ValueError

最大长度

只读属性,最大长度受deque限制,如果没有则返回None。 当一个有限长度的双端队列添加超过限制数量的项目时,另一端的项目将被自动删除。

此外python 多线程进度条,deque还通过in操作符支持迭代、序列化、len(d)、reversed(d)、copy.copy(d)、copy.deepcopy(d)、成员测试和下标索引。

1.3 微线程示例

from collections import deque

python 多线程进度条_python 线程超时_python 等待线程结束

def range_1(): for n in range(5): print(f"I'm range_1, {n}") yield def range_2(): for n in range(10): print(f"I'm range_2, {n}") yield

python 等待线程结束_python 多线程进度条_python 线程超时

def range_3(): for n in range(15): print(f"I'm range_3, {n}") yield if __name__ == '__main__': task_queue = deque() task_queue.append(range_1()) task_queue.append(range_2())

python 线程超时_python 多线程进度条_python 等待线程结束

task_queue.append(range_3()) while task_queue: task = task_queue.pop() # 获取下一个任务 try: # 运行它直到下一条yield和enqueue语句 next(task) task_queue.appendleft(task) except StopIteration: # 任务完成 pass