python-queue知识点

1.dict获取value
dict.get(key_name)
2.三元运算

res,err=stdout.read(),stderr.read() #三元运算
result=res if res else err
print(result.decode())
36:10

 


知识回顾:
1.执行一个线程,如何获取结果?
2.event
event.set() #green_light=ture
event.wait() #等待set方法执行
event.clear() #green_light=false
3.assert 断言

 


问题:

1.python进程与线程的区别

2.GIL的作用:防止底层原生C程序在同一时刻修改同一份数据 (GIL 表示全局解释器锁)
3.setdaemon

 

queue类:


LIFO:last in first out
queue.LifoQueue(maxsize=0) maxsize参数用于设置最大上限值,maxsize<=0表示无穷大
FIFO:First in first out
queue.Queue(maxsize=0) maxsize参数用于设置最大上限值,maxsize<=0表示无穷大


queue.PriorityQueue(maxsize=0) 优先级队列构造方法
The lowest valued entries are retrieved first (the lowest valued entry is the one returned by sorted(list(entries))[0]). A typical pattern for entries is a tuple in the form: (priority_number, data).

queue.Empty :用于判断队列中的对象是否为空,如果是空,调用get 或 get_nowait() 方法将引发异常。

queue.Full :用于判断队列中的对象是否已塞满,如果full,调用put 或 put_nowait()方法将引发异常。


queue object方法
Queue.qsize():返回队列的近似大小,qsize>0不会保证后续的get()不会阻塞,qsize<maxsize不会保证后续的put()不会阻塞。

Queue.empty():队列为空,返回True,否则返回false。如果返回True,不会保证后续的get()不会阻塞。同理,如果返回False,不会保证后续的put()不会阻塞。

Queue.full():队列为full,返回True,否则返回false.如果返回True,不会确保后续的get()不会阻塞。同理,如果返回False,不会确保put()不会阻塞。

Queue.put(item,block=True,timeout=None): 向队列中传入值,如果block为True,则在必要时阻塞,直到队列中有空闲插槽可用。timeout用于设置超时时间。

Queue.put_nowait(item): 相当于put(item,False)

Queue.get(block=True,timeout=None):从队列中移除并返回一个项目

Queue.get_nowait() :相当于get(False)

支持跟踪守护线程是否完全处理入队任务:
Queue.task_done()
Queue.join()

 

posted @ 2017-04-27 14:56  DevOps_QXW  阅读(655)  评论(0编辑  收藏  举报