python 队列Queue

Posted 思此狂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 队列Queue相关的知识,希望对你有一定的参考价值。

from Queue import Queue

qlist=Queue(maxsize=300)
import threading

for i in range(20):
    qlist.put("hello num%d" %(i))

def process_work(qlist):
    while True:
        val=qlist.get()
        print val + "
"
        qlist.task_done()
        qlist.join()


workers = [threading.Thread(target=process_work, args=(qlist,)),
        threading.Thread(target=process_work, args=(qlist,))
        ]

threads = []

for i in range(20):
    task=threading.Thread(target=process_work, args=(qlist,))
    threads.append(task)



for w in threads:
    w.setDaemon(True)
    w.start();

qlist.join()


# def worker():
#     while True:
#         item = q.get()
#         do_work(item)
#         q.task_done()

# q = Queue()
# for i in range(num_worker_threads):
#      t = Thread(target=worker)
#      t.daemon = True
#      t.start()

# for item in source():
#     q.put(item)

# q.join()

#print "hello {} your age {}".format("zhangsan",18)

# import Queue
# import threading

# class Job(object):
#     def __init__(self, priority, description):
#         self.priority = priority
#         self.description = description
#         print ‘Job:‘,description
#         return
#     def __cmp__(self, other):
#         return cmp(self.priority, other.priority)

# q = Queue.PriorityQueue()

# q.put(Job(3, ‘level 3 job‘))
# q.put(Job(10, ‘level 10 job‘))
# q.put(Job(1, ‘level 1 job‘))

# def process_job(q):
#     while True:
#         next_job = q.get()
#         print ‘for:‘, next_job.description
#         q.task_done()

# workers = [threading.Thread(target=process_job, args=(q,)),
#         threading.Thread(target=process_job, args=(q,))
#         ]

# for w in workers:
#     w.setDaemon(True)
#     w.start()

# q.join()

 

以上是关于python 队列Queue的主要内容,如果未能解决你的问题,请参考以下文章

来自dispatch_async全局崩溃的C函数调用,但在主队列上工作

在Python中保存队列数据

python学习--queue 队列

将多个不同的队列压缩到Python中的for循环中?

Python 队列(Queue)作用和用法

python消息队列Queue