python 线程队列,python 多进程 队列
PythonQueue模块为同步提供线程安全的队列类,包括FIFO队列、LifoQueue和PriorityQueue。这些队列实现了锁原语,可以直接在多线程中使用,也可以用来同步线程。我们来看看python队列的基本操作。
00-1010一、队列二的基本操作。多线程队列
目录
从队列导入队列
Q=Queue(5) #创建一个容量为5的队列。如果给定一个小于0的数,队列的大小是无限的。(这是官方的解释。其实不是无限大小,而是和内存有关。)
#存储数据
Q.put(123) #数值
q.put(hello world!)#字符串
Q.put([hello , world]) # list
Q.put((hello , world)) # tuple
Q.put({hello: world}) #字典
#如果再次尝试存储第六个,它将会阻塞,因为容量已设置为5。
# q.put({hello: python})
取出队列中的值:
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
如图,依次取出五个数值。排队遵循先进先出的原则。
q.put_nowait()
q.put_nowait()方法可以无障碍地将内容添加到队列中。如果队列已满,它会立即报告错误,而不等待(即不会发生阻塞)。
q.get_nowait()
q.get_nowait()方法可以无障碍地从队列中取出内容。如果队列为空,它也会不等待直接报错。
将不举例说明具体的用途。
查看队列的当前大小。
q.qsize()
打印(q.qsize())
print(q.get())
打印(q.qsize())
print(q.get())
打印(q.qsize())
print(q.get())
打印(q.qsize())
print(q.get())
打印(q.qsize())
print(q.get())
打印(q.qsize())
如图所示,每取出一个值,队列大小就减一。类似地,每存储一个值,队列大小就增加一。
q.full()
确定队列是否已满。
q.empty()
确定队列是否为空。
print(q.full())
print(q.get())
print(q.get())
print(q.full())
print(q.empty())
print(q.get())
print(q.get())
print(q.get())
print(q.empty())
一、队列基本操作
从队列导入队列
导入线程
导入时间
#存储值,每秒一个
定义设置值(q):
数量=0
而True:
q.put(数字)
数量=1
时间.睡眠(1)
#取值,不间断取。
定义获取值(q):
而True:
print(q.get())
if __name__==__main__:
q=队列(4)
t1=线程。线程(target=set_value,args=(q,))
t2=线程。Thread(target=get_value,args=(q,)
t1.start()
t2.start()
程序开始运行,一边存储,一边取值:
这个思路应用到爬虫上,就是边访问获取数据边下载数据。
关于python队列和多线程队列的基本操作,本文就到这里了。有关python queue的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。