并发编程——队列、multiprocessing、concurrent.futures模块

本文介绍了Python中的并发编程,包括queue模块的FIFO、LIFO和优先级队列,以及multiprocessing模块如何利用多核进行计算。同时,详细讲解了concurrent.futures模块的ThreadPoolExecutor和ProcessPoolExecutor,通过实例展示了线程池和进程池的使用,以提升程序执行效率。
摘要由CSDN通过智能技术生成

一、queue模块
(一)Queue FIFO
1、Queue(maxsize=0) 构造实例
2、.put(item,block=True,timeout=None) 放入数据项
3、.get(block=True,timeout=None) 获取数据项
4、.task_done()声明当前队列任务处理完毕
5、.join()队列所有项处理完毕前阻塞
应用:

import threading
import queue
import time
import random

def producer(data_queue):
for i in range(5):
time.sleep(0.5)
item = random.randint(1,100)
data_queue.put(item)
print(f’{threading.current_thread().name}在队列中放入数据项:{item}’)

def consumer(data_queue):
while True:
try:
item = data_queue.get(timeout=3)
print(f’{threading.current_thread().name}从队列中移除了{item}’)
except queue.Empty:
break #跳出当前的循环
else:
data_queue.task_done()

def major():
q = queue.Queue()

threads = []
p =threading.Thread(target=producer,args=(q,))
p.start()

for i in range(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值