if __name__ == '__main__': # 创建进程列表 t_list = [] mq = Queue() mq.put('1') mq.put('2') mq.put('3') # 循环创建进程 for i in range(3): t = MyProcess('p{}'.format(i), mq) t.start() t_list.append(t) # 等待进程结束 for t in t_list: t.join() print(mq.get()) print(mq.get()) print(mq.get())
老师您好,请问,上面这段代码为什么要写两个for循环?不是很理解。第一个for循环运行了三个进程,然后第二个for循环依次等待三个进程?我不理解的是,第一个for循环是否会将三个进程都运行完,然后再执行第二个for循环,依次等待?如果是这样,第一个for循环运行后,三个进程都运行了,还要第二个for循环有什么意义? 如果稍作修改代码,如下,会有何问题?
if __name__ == '__main__': # 创建进程列表 t_list = [] mq = Queue() mq.put('1') mq.put('2') mq.put('3') # 循环创建进程 for i in range(3): t = MyProcess('p{}'.format(i), mq) t.start() t_list.append(t) t.join() print(mq.get()) print(mq.get()) print(mq.get())
def producer(): num = 1 if num < 10: if queue.qsize() < 10: print(f'生产:{num}号,大馒头') queue.put(f'大馒头:{num}号') num += 1 else: print('馒头框满了,等待来人消费啊!') sleep(1) def consumer(): if queue.qsize() > 0: print(f'获取馒头:{queue.get()}') sleep(1) else: print('没有馒头了!') if __name__ == '__main__': queue = Queue() t = Thread(target=producer) t.start() c = Thread(target=consumer) c.start()
老师,我自己写的代码,但是始终都只能生产一个馒头并获取一个馒头。请问问题出在哪里?谢谢!
便利 for i in range (3)这是干嘛了
孩子有点懵
老师想请教下,Process类不是有了name属性吗,为什么继承了Process类还要再加一个name属性呢
我ipconfig之后有很多的ip我使用tcp,utp应该连接的是哪个ip?
socket * threading Thread (): : recv_data = s.recvfrom()recv_content = recv_data[].decode() (recv_data[].decode()recv_data[]) recv_content == : () (): addr = (, ) : data = () s.sendto(data.encode(), addr) data == : () __name__ == : s = socket(AF_INET,SOCK_DGRAM)s.bind((,))t1 = Thread(=recv_data()) t2 = Thread(=send_data()) t1.start() t2.start() t1.join() t2.join()
socket * threading Thread (): : recv_data = s.recvfrom()recv_content = recv_data[].decode() (recv_data[].decode()recv_data[]) recv_content == : () (): addr = (, ) : data = () s.sendto(data.encode(), addr) data == : () __name__ == : s = socket(AF_INET,SOCK_DGRAM)s.bind((,))t1 = Thread(=recv_data()) t2 = Thread(=send_data()) t1.start() t2.start() t1.join() t2.join() s.close 两个代码都运行没有结果
为什么1还没出来2就进去了
老师 tcp怎么没笔记
为什么这样
#conding="utf-8" from multiprocessing.context import Process from multiprocessing.queues import Queue from time import sleep class MyProcess(Process): def __init__(self,name,mq): Process.__init__(self) self.name=name self.mq=mq def run(self): print(f"Process:{self.name},start") print(f"get Data:{self.mq.get()}") sleep(3) print(f"Process:{self.name},end") if __name__ == '__main__': mq = Queue() mq.put("1") mq.put("2") mq.put("3") #进程列表 t_list = [] #创建进程 # t1=MyProcess("t1") # t2=MyProcess("t2") # t3=MyProcess("t3") # t1.start() # t2.start() # t3.start() #使用for循环 for i in range(3): t = MyProcess(f"t{i}",mq) t_list.append(t) t.start()
老师麻烦你帮我看一下
threading Thread time sleep tkinter.font names MyThread(Thread): (,name): Thread.() .name=name (): i (): (.namei) sleep() __name__ == : () t1=MyThread() t2=MyThread() t1.daemon=t1.start() t2.start() ()
老师,我这个加了一个t2线程,为啥t1现场作为守护线程,没有跟主线程一起结束?是我理解有问题么
老师,vscode怎么多窗口运行终端呢,运行服务端之后就无法打开新窗口运行服务端,应该有哪个设置没找到吧(在pycharm里就可以)
run方法中为什么不是lock.
而是lock1,这个不是实例对象吗?
run方法在线程类包装具体有什么用?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637