网络编程——同一进程中的队列(多线程)

import queue

queue.Queue() 先进先出

queue.LifoQueue() 后进先出

queue.PriorityQueue() 优先级队列

  优先级队列 q = queue.PriorityQueue()

    q.put() 接受的是一个元祖

    元祖中第一个参数是:表示当前数据的优先级

    元祖中第二个参数是:需要存放到队列中的数据

  优先级的比较(首先保证整个队列中,所有表示优先级的东西类型必须一致)

    如果都是int 类型,比数值大小

    如果都是str类型,比较字符串的大小(从第一个字符的ASCII码开始比较)

 

 

from multiprocessing import Queue# 是用于多进程的队列,就是专门用来做进程间通信(IPC)。
import queue# 是用于同一进程内的队列,不能做多进程之间的通信

# q = queue.Queue()# 先进先出
# q.put(1)
# q.put(2)
# q.put(3)
# print(q.get())
# print(q.get())

# q = queue.LifoQueue()
# # 后进先出的队列
# q.put(1)
# q.put(2)
# q.put(3)
# print(q.get())

q = queue.PriorityQueue()
# 优先级队列,put()方法接收的是一个元组(),第一个位置是优先级,第二个位置是数据
# 优先级如果是数字,直接比较数值
# 如果是字符串,是按照 ASCII 码比较的。当ASCII码相同时,会按照先进先出的原则
# q.put((1,'abc'))
# q.put((5,'qwe'))
# q.put((-5,'zxc'))
# print(q.get())
# print(q.get())
# print(chr(48))

 

posted @ 2018-08-27 15:42  Morallz  阅读(215)  评论(0编辑  收藏  举报