print(f"第{number}个人在安检")
这个f是什么意思
"""协程的基本使用-asyncio的task的使用""" import functools import asyncio async def compute(x,y): print(f"compute:{x}+{y}....") await asyncio.sleep(1) return x+y async def print_sum(x,y): #创建task task = asyncio.create_task(compute(x,y)) #task绑定回调函数 task.add_done_callback(functools.partial(end,x,y)) #释放一下cpu的使用 await asyncio.sleep(1) def end(n,m,t): print(f"{n}+{m}={t.result}") if __name__ == "__main__": loop = asyncio.get_event_loop() loop.run_until_complete(print_sum(2,3)) loop.close()
这个是什么情况啊老师??
求解
#协程的使用——gevent 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()
老师我这是什么情况呀?
from threading import Thread,BoundedSemaphore from time import sleep def an_JIan(number): renshu.acquire() print(f"第{number}个人在安检") sleep(3) renshu.release() if __name__ == '__main__': renshu=BoundedSemaphore(3) for x in range(10): t1=Thread(target=an_JIan,args=(f'{x+1}',)) t1.start()
#老师我的运行结果每次不一样是怎么回事呢
'''
第1个人在安检
第2个人在安检
第3个人在安检
第4个人在安检
第6个人在安检
第5个人在安检
第8个人在安检
第7个人在安检
第9个人在安检
第10个人在安检
进程已结束,退出代码为 0
第二种如下:
import asyncio import functools async def compute(x, y): print(f'compute:{x}+{y}...') await asyncio.sleep(1) return x + y async def print_sum(x, y): # 创建task task = asyncio.create_task(compute(x, y)) # 底层 # task绑定事件函数 task.add_done_callback(functools.partial(end, x, y)) await asyncio.sleep(1) def end(n, m,t): # result = await compute(x,y) print(f'{n}+{m}={t.result}') if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(print_sum(1, 2)) loop.close()
老师能把这个程序的流程叙述一遍吗 我调试了一下感觉还是不太懂
#他不可以fun2中在去调用fun1吗 为什么呢 老师
from threading import RLock def fun1(): lock.acquire() print("fun1 ") fun2() lock.release() def fun2(): lock.acquire() print("%%%%%%%") lock.acquire() print("fun2") fun1() lock.release() def fun3(): print('####') fun1() fun2() if __name__ == '__main__': lock = RLock() fun3() #老师好 为什么我这里他会报错呢
请问老师,Event.is_set() 刚开始判断True和Fslse
也需要clear()和set()来判断吗?
老师你好,是不是用锁的时候只要是 RLock() 就不会出现死锁?
不用啦 解决啦
from threading import Thread, Lock from time import sleep def fun1(): lost1.acquire() print("fun1已经拿到了刀,正在切菜") sleep(3) lost2.acquire() print('fun1要用锅做红烧肉,用完了要释放锅') lost2.release()#释放刀 lost1.release()#释放锅 print("做好了") print("做好了红绕肉完事了") def fun2(): lost2.acquire() print('fun2已经拿到了锅') lost1.acquire() print('fun2已经拿到了刀') lost2.release() lost1.release() print("做好了西兰花") if __name__ == '__main__': lost1 = Lock # 刀 lost2 = Lock # 锅 t1 = Thread(target=fun1) t2 = Thread(target=fun2) t1.start() t2.start() #老师我为什么这里不是卡着 死循环,反而还报错了呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637