python中多线程的共享数据,通过queue来实现,内有生产者消费者经典模型的示例代码

queue:队列,即先进先出,它有以下几个方法:

1.判断队列的大小:size()

2.向队列中添加:put()

3.向队列中取出:get()

4.如果队列规定了长度,用来判断是否满了:full()

import threading,time
import queue
q = queue.Queue(maxsize=10)#在里面设置队列的大小

def Producer():
    count = 1
    while True:
        q.put("面包%s"%count)
        print("生产了面包%s\n"%count)
        count +=1
        time.sleep(1)



def  Consumer(name):
    while True:
        print("{0}吃了{1}\n".format(name,q.get()))
        time.sleep(5)



p = threading.Thread(target=Producer,)
c = threading.Thread(target=Consumer,args=('11111',))
c1 = threading.Thread(target=Consumer,args=('22222',))


p.start()
c.start()
c1.start()

结果:

生产了面包1

11111吃了面包1
生产了面包2
22222吃了面包2


生产了面包3

生产了面包4

生产了面包5

生产了面包6

11111吃了面包3

22222吃了面包4

生产了面包7

生产了面包8

生产了面包9

生产了面包10

生产了面包11

11111吃了面包5

22222吃了面包6

生产了面包12

生产了面包13

生产了面包14

生产了面包15

11111吃了面包7
生产了面包16


22222吃了面包8

生产了面包17

生产了面包18

11111吃了面包9
生产了面包19


22222吃了面包10

生产了面包20

猜你喜欢

转载自blog.csdn.net/qq_41901915/article/details/82729627