python多线程队列两组数据_python之多线程队列

import queue

q = queue.Queue(maxsize=3)

#创建一个队列的实例,该是对象的size是3

# q.get()

#从队列中获取值,如果队列中没有值,则会一直阻塞

# q.qsize()

#获取队列的size

# q.get(timeout=3)

#c从队列中获取值,如果获取不到值,则只等待3s,如果超过3则会报错

# queue.Empty

# q.get_nowait()的方法和q.get(timeout=3)一样的,如果拿不到会数据也会报一个queue.Empty的错

# queue.Empty

#可以传一个list到队列中,取出来的也是一个list

q.put(["a","b","c"])

data = q.get_nowait()

print(data,type(data))

# ['a', 'b', 'c']

#我们也可以把一个实例放在队列中

class foo(object):

def __init__(self,n):

self.n = n

f = foo(2)

q.put(f)

c = q.get_nowait()

print(c,type(c))

# <__main__.foo object at>

#判断队列是否满,队列中有3个数据,如果get了一个,则队列中的数据个数就为2了

print(q.full())

# False

print(q.qsize())

q.put("1")

q.put({"k1":"v1"})

q.put(["a","b","c"])

print(q.qsize())

# q.put("2222")

#如果队列满了,则put会一直put不进去,这里就会一直阻塞

# q.put("abc",timeout=2)

#如果队列满了,加一个timeout=2.则会等待2s,如果还放不进去则会报错“queue.Full”

# q.task_done()

# q.join()

# q.empty()

# 判断队列是否为空

q = queue.Queue()

#上面这个是创建一个先进先出的队列

q = queue.LifoQueue()

#这里是创建一个先进后出的队列

q= queue.PriorityQueue()

#创建一个可以设置优先级的队列,存数据的时候是要用tuple的个数传数据,优先级越小,就越会被提前取出来

q.put((1,["a","b","c"]))

q.put((2,"abc"))

print(q.get())

# (1, ['a', 'b', 'c'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值