老师,我想问下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,))
进程,线程的调用对象不是太明白
他们的调用对象只能是函数,类吗?可以是模块,项目吗?
一、程序
''' 线程的创建与使用 线程的创建方法二: 类包装 用for循环创建多个线程 守护线程 ''' from threading import Thread from time import time, sleep # 调用线程模块 class Mythread(Thread): def __init__(self, name): Thread.__init__(self) self.name = name def run(self): print('threading{} start',format(self.name)) sleep(3) print('threading{} end', format(self.name)) if __name__=='__main__': start=time() t_list = [] for i in range(10): t = Mythread('t{}'.format(i)) t.setDaemon(True) t.start() t_list.append(t) print('主线程结束了') end=time() t=end-start print(t)
二、结果
三、疑问
老师请问,我的t为什么都在花括号外边?‘主线程结束了’位置也有点乱,是pycharm的问题吗?
老师,这个0.001s的时间是代码运行到哪里的时间呢
老师asyncio.gather()和asyncio.run()有什么区别吗
老师,我想请问一下callbac是什么意思呢?不太懂;还有就是您后面说的是写了args的效率要比不写是要高一点是吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637