 python3学习手册★多进程之线程队列Queue 使 用 mul�processing.JoinableQueue() 方 法 创 建 一 个 队 列 , 它 与 queue.Queue的区别在于,它是多进程安全的,不用担心它的互斥和死 锁问题。 比如,有一个仓库用来存放商品,假如最多只能放5个商品,A不停的 放,B不停的取,A和B的放取速度不一致,就可以用队列来做 import multiprocessing True: print('A 查看当前队列长度:', test_queue.qsize()) test_queue.put(f"商品 {product_id}") print(f"A 放入:[商品 {product_id}],放入后队列长度: {test_queue.qsize()}") # 如果队列已达到最大值,则阻塞在此,直 到有人取出 consumer_b(test_queue): while True: print('B 查看当前队列长度:', test_queue.qsize()) print(f"B 取出 [{test_queue.get()}],取出后队列长度: {test_queue.qsize()}") # 如果队列里无内容,则阻塞在此,直到有 人放入 time.sleep(random.randint(30 码力 | 213 页 | 3.53 MB | 1 年前3 python3学习手册★多进程之线程队列Queue 使 用 mul�processing.JoinableQueue() 方 法 创 建 一 个 队 列 , 它 与 queue.Queue的区别在于,它是多进程安全的,不用担心它的互斥和死 锁问题。 比如,有一个仓库用来存放商品,假如最多只能放5个商品,A不停的 放,B不停的取,A和B的放取速度不一致,就可以用队列来做 import multiprocessing True: print('A 查看当前队列长度:', test_queue.qsize()) test_queue.put(f"商品 {product_id}") print(f"A 放入:[商品 {product_id}],放入后队列长度: {test_queue.qsize()}") # 如果队列已达到最大值,则阻塞在此,直 到有人取出 consumer_b(test_queue): while True: print('B 查看当前队列长度:', test_queue.qsize()) print(f"B 取出 [{test_queue.get()}],取出后队列长度: {test_queue.qsize()}") # 如果队列里无内容,则阻塞在此,直到有 人放入 time.sleep(random.randint(30 码力 | 213 页 | 3.53 MB | 1 年前3
共 1 条
- 1














