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 + "\n"
        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()
复制代码

 

复制代码
# -*- coding: UTF-8 -*-

from Queue import Queue
import threading
import time
import random

task_list=Queue()

#生产者,生产数据
def product():
    while True:
        value = random.randint(1,10)
        task_list.put(value)
        print "生产数据 %d" % value
        time.sleep(1)


def consume():
    while True:
        time.sleep(3)
        value = task_list.get()
        print "消费数据 %d" % value


theaad_list = []

product_task = threading.Thread(target = product)
product_task.start()

consume_task = threading.Thread(target = consume)
consume_task.start()

theaad_list.append(product_task)
theaad_list.append(consume_task)

for i in theaad_list:
    i.join()

print
复制代码

 

posted on   思此狂  阅读(191)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示