def end(m,n,t): print(f'{m}+{n}={t.result()}')
在这个地方,这个t 上边并没有对t赋值 这里单纯的定义为什么就能执行,并且对应task,我最开始认为返回来的就是结果 所以按照下边这个写的 但是打印的不是结果 查看type之后发现是个class 就有点蒙了 为什么能直接对应task,并且t调用result可以有结果
def end(m,n,t): print(f'{m}+{n}={t}')
老师 我这么理解对吗
老师我这吧下载的网络助手显示乱码,是我电脑设置的问题吗
老师,导入包/模块的快捷键是什么呀
老师,请问,这里的f是什么意思,必须要加上的吗
老师,我想问下coding和encoding与decode有啥区别
老师,进程间不共享栈也不共享堆怎么理解?线程之间共享堆但不共享栈又怎么理解?它们的底层实现是怎么样的?
这模拟器如何变成中文呀
老师,
第一个问题,使用循环创建多线程的话,是不是所有的线程的对象的地址都给了一个变量,之前创建线程是分t1,t2,t3的
第二个问题,这里用了两个线程去生产,如果两个线程各生产一个,是不是这两个产品都叫同一个名字,就比如这节的count给编号一样,他俩的产品编号是不是一样的
第三个问题,代码和老师一样,控制台打印为什么会乱,代码如下,截图如下
# 生产模式与消费模式 import threading, time from queue import Queue class product(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 custome(threading.Thread): def run(self): global qu while True: if qu.qsize()>100: for i in range(5): msg = self.name+'取出的产品'+qu.get() print(msg) time.sleep(2) if __name__ == '__main__': qu = Queue() for i in range(500): num = '初始产品'+ str(i) qu.put(num) for i in range(2): pro = product() pro.start() for i in range(5): cus = custome() cus.start()
老师,线程之间是共享资源的,num公用同一个内存地址,为什么主线程等所有子线程跑完,num内存里的值不应该是2000000吗?
老师 后面会学到运维吗 我听到视频结尾说 后面涉及运维的时候现在学的才派的上用场
老师,想问一下 这一部分并发编程的内容要掌握到什么程度呀
from threading import Thread from time import sleep class Acount: def __init__(self,name,money): self.name = name self.money = money class Drawing(Thread): def __init__(self,drawingNum,account): Thread.__init__(self) self.drawingNum = drawingNum self.account = account self.expenseTotal = 0 def run(self): if self.account.money < self.drawingNum: return sleep(1)# 判断完可以取钱,则阻塞。就是为了测试发生冲突问题 self.account.momey -= self.drawingNum self.expenseTotal += self.drawingNum print(f"{self.account.name},余额是{self.account.money}") print(f"{self.account.name},总共取了{self.expenseTotal}") if __name__ == '__main__': a1 = Acount('gaoqi',100) draw1 = Drawing(80,a1)# 定义一个取钱的线程 draw2 = Drawing(80,a1)# 定义一个取钱的线程 draw1.start() draw2.start()
这个错在哪里?
老师,请问为什么报这个错?我应该怎么改呢
为什么我的read()方法在进程中没有效果?
from multiprocessing import Manager,Pool import time def write(q): for value in list('abcd'): print('正在写入消息',value) q.put(value) def read(q): time.sleep(3) for i in range(q.qize()): print('读取到的消息是',q.get()) if __name__ == '__main__': q=Manager().Queue() po =Pool() po.apply_async(write,(q,)) po.apply_async(read,(q,))
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637