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
分类:
Python
, python-多线程&进程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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保姆级教程