会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 128778个问题

1554123195(1).jpg

是因为执行太快,导致两个线程的数据混乱了么~~

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 916楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 921楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 924楼

import threading
import time
from queue import Queue
class Pro(threading.Thread):
    def run(self):
        global qu
        count=0
        while True:
            if qu.qsize()<1000:
                for i in range(100):
                    count+=1
                    msg="生成产品"+str(count)
                    qu.put(msg)
                    print(msg)
            time.sleep(1)
class Con(threading.Thread):
    def run(self):
        global qu
        while True:
            if qu.qsize()>100:
                for i in range(3):
                    msg=self.name+"消费了"+qu.get()
                    print(msg)
            time.sleep(1)
if __name__=="__main__":
    qu=Queue
    for i in range(500):
        qu.put("初始产品"+str(i),)
    for i in range(2):
        p=Pro()
        p.start()
    for i in range(5):
        c=Con()
        c.start()

代码跟老师的一样,为什么会报这样的错??????????

Traceback (most recent call last):

  File "C:/Users/齐泉/PycharmProjects/1/test2.py", line 28, in <module>

    qu.put("初始产品"+str(i))

TypeError: put() missing 1 required positional argument: 'item'


Process finished with exit code 1


Python 全系列/第三阶段:Python 网络与并发编程/并发编程 930楼

百战程序员微信公众号

百战程序员微信小程序

©2014-2024 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637