python 线程队列,python 多进程 队列

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: