老师,额,可以问问这几个媒体已断开连接的,是什么啊?(后面要是有提到的话,您直接回复就好,我再自己看看)
老师您好:下面的代码中 把for循环里面的i换成t 代码有颜色提示,但是也可以运行,怎么回事呢?
#测试多线程 import threading,time def saySorry(): print("子线程%s启动"%(threading.current_thread().name)) time.sleep(1) print("亲爱的,我错了") if __name__ == "__main__": print("主线程%s启动"%(threading.current_thread().name)) for i in range(5): t = threading.Thread(target=saySorry) #Thread() 指定线程要执行的代码 t.start()
这里为什么要用循环啊,不太
明白
老师我这个线程1和2怎么是同一时间运行完的,怎么没有执行完线程1睡上3秒后,再执行线程2.
from threading import Thread from time import sleep #线程的实现 #方法包装 #创建普通方法 def func1(name): print(f"Threading:{name}start") sleep(3) #创建线程 t1=Thread(target=func1,args=('t1',)) t2=Thread(target=func1,args=('t2',)) #开始线程 t1.start() t2.start()
为什么Threading:t3 end 和 Threading:t2 end 之间没有自动换行?
代码:
from threading import Thread from time import sleep,time import threading def func1(name): #print(threading.currentThread()) print(f"Threading:{name} start") sleep(3) print(f"Threading:{name} end") if __name__ == '__main__': #print(threading.currentThread()) #开始时间 start = time() thread_list = [] for i in range(3): t = Thread(target=func1, args=(f"t{i+1}",)) thread_list.append(t) t.start() for t in thread_list: t.join() #结束时间 end = time() - start print(end)
3.运行结果: Threading:t1 start Threading:t2 start Threading:t3 start Threading:t1 end Threading:t3 endThreading:t2 end 3.002171754837036 Process finished with exit code 0
mock.zip
老师 这是一个demo 代码 用docker 部署的 麻烦老师了 ,帮忙看下 感谢!
部署执行的命令 docker run -itd -p 8088:5000 -v "$PWD":/mock_hotel hotel:v4 --gevent 100 --gevent-early-monkey-patch uwsgi.ini
老师,这里这个f是什么意思,表示什么
import gevent def gf(name): print(f'{name}:我想买包包!!') gevent.sleep(1) print(f'{name}:我想学编程!!') g2.switch() def bf(name): print(f'{name} :买买买') gevent.sleep(1) print(f'{name} :一定去尚学堂') if __name__ == '__main__': g1 = gevent.spawn(gf, '貂蝉') g2 = gevent.spawn(bf, '吕布') #切换任务 g1.join() g2.join()
AttributeError: module 'gevent' has no attribute 'spawn'
我已经安装包了,不知道为什么还会报错
老师您好,在学完线程同步后我也查了下异步相关的资料,即“同步有序、异步无序”,那么在不用锁等方式进行同步的情况下,默认是不是就是异步的?
老师,为啥TCP服务器端发送消息和TCP客户端发送消息时,调用的对象都是TCP套接字客户端对象client_soket,服务器发送消息的时候,调用的对象不应该是server_soket吗?而且不管是客户端还是服务端,在发送消息和接收消息的时候调用的对象都是客户端套接字对象client_soket,服务器套接字对象server_soket一直都没有用上
请问协程不是在IO的时候会切换到另一任务吗,为什么缺点里却又会阻塞整个程序?
''' 生产者消费模型 ''' from threading import Thread from time import sleep from queue import Queue def producer(): num = 1 while mq.not_empty: print("王大娘做了第{}个包子".format(num)) mq.put(f"王大娘做的第{num}个包子") num += 1 sleep(2) else: print("吃的太快了") def consumer(name, count): while mq.not_empty: m = mq.get() print("{}吃了第{}个包子".format(name, m)) sleep(count) else: sleep(5) if __name__ == '__main__': mq = Queue() t1 = Thread(target=producer) t2 = Thread(target=consumer, args=("张三", 3)) t3 = Thread(target=consumer, args=("李四", 1)) t4 = Thread(target=consumer, args=("王五", 1)) t1.start() t2.start() t3.start() t4.start()
老师,我这包子两秒钟做一个,但是吃包子的最快一秒一个,为啥生产者中的print("吃的太快了")没有执行,还是做一个吃一个
注释掉join(),主线程应该也能完成才对吧
老师,帮忙看一下为什么停到这里了
老师我,为什么会报这个错误
import asyncio import functools async def compute(x, y): print(f'{x}+{y} is computing') await asyncio.sleep(1) return x + y async def out_sum(x, y): # 创建任务task task = asyncio.create_task(compute(x, y)) # 给task绑定回调函数 task.add_done_callback(functools.partial(end, x, y)) await asyncio.sleep(2) async def end(n, m, t): # t是task对象,通过t获取task对象运行的结果 print(f'{n}+{m}={t.result()}') if __name__ == '__main__': # 创建循环 EventLoop = asyncio.get_event_loop() # 监听循环 EventLoop.run_until_complete(out_sum(1, 2)) EventLoop.close()
一次性最多能创建多少个进程?这个界限是怎么判定的?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637