老师能不能举一些具体实际的例子,感觉这什么菜刀红烧肉的东西很苍白无力
那个地方出错了
from threading import Thread from queue import Queue from time import sleep def producer(): num=1 while True: if mq.qsize()<10: print(f"生产了{num}号加菲猫") mq.put(f"{num}号加菲猫") num+=1 sleep(1) def consumer(): while True: print("购买了{}".format(mq.get())) sleep(2) if __name__=="__main__": #共享数据的容器 mq=Queue #创建生产者线程 t1=Thread(target=producer) #创建消费者线程 t2=Thread(target=consumer) # 创建消费者线程 t3 = Thread(target=consumer) #开始工作 t1.start() t2.start() t3.start()
from threading import Thread from time import sleep class Text(Thread): def __init__(self,name): Thread.__init__(self) self.name = name def run(self): print(f"Thread:{self.name} start") sleep(2) print(f"Thread:{self.name} end") if __name__ == '__main__': t1 = Text("t1") t2 = Text("t2") t1.setDaemon(True) t1.start() t2.start() print("主线程结束")
为什么执行了t2的end,我只把t1改成了守护线程
from threading import Thread from time import sleep # 线程的实现 # 方法包装 # 创建普通方法 def func1(name): print(f"Threading:{name} start") sleep(3) if __name__ == "__main__": # 创建线程 t1 = Thread(target=func1,args=('t1',)) t2 = Thread(target=func1,args=('t2',)) # 开始线程 t1.start() t2.start() # func1('t1') # func1('t2')
这个是并行还是并发
老师我这代码运行的样子怎么是这样的?然后每次的样子还不一样
from time import sleep from threading import Thread from threading import BoundedSemaphore def an_jian(num): lock.acquire() print(f"第{num}个人完成安检!!!") sleep(2) lock.release() if __name__=="__main__": lock=BoundedSemaphore(3) for i in range(10): t=Thread(target=an_jian,args=(f"{i+1}",)) t.start()
老师我这个运行的时候没有任何的结果,直接显示程序结束了
from threading import RLock def func1(): lock.acquire() print("func1拿到锁") func2() lock.release() print("func1释放锁") def func2(): lock.acquire() print("func2拿到锁") lock.release() print("func2释放锁") def func3(): func1() func2() if __name__=="__mian__": lock=RLock() func3()
老师,想问一下 这一部分并发编程的内容要掌握到什么程度呀
老师有几个问题请教一下
from threading import Thread from time import sleep
这两句话是什么意思,直接写成 import itme sleep 不行吗
print(f"Threading:{name} start")
这个代码中f起到了什么作用
用锁是不是就和单线程一样,感觉都没有并行
21,22行是多线程执行任务吗?相当于是调用函数吗?
#encoding=gbk #echo服务器(回声服务器:将接收到的消息原样发回去) #实现聊天室功能 from threading import Thread from socket import * from time import sleep def jieShou(): while True: #接收消息 redate = udpSock.recvfrom(1024) #打印接收到的消息 print(redate[0].decode()) def faSong(): global redate while True: #输入发送的信息 data = input("请输入:") #发送消息 udpSock.sendto(data.encode(),("192.168.1.9",8785)) sleep(2) if __name__ == "__main__": # 创建套接字对象 udpSock = socket(AF_INET, SOCK_DGRAM) # 绑定端口 udpSock.bind(("192.168.1.9", 8685)) t2 = Thread(target=faSong()) t1 = Thread(target=jieShou()) t2.start() t1.start() udpSock.close()
#encoding=gbk #echo服务器(回声服务器:将接收到的消息原样发回去) #实现聊天室功能 from threading import Thread from socket import * from time import sleep def jieShou(): while True: #接收消息 redate = udpSock.recvfrom(1024) #打印接收到的消息 print(redate[0].decode()) def faSong(): global redate while True: #输入发送的信息 data = input("请输入:") #发送消息 udpSock.sendto(data.encode(),("192.168.1.9",8685)) sleep(1) if __name__ == "__main__": # 创建套接字对象 udpSock = socket(AF_INET, SOCK_DGRAM) # 绑定端口 udpSock.bind(("192.168.1.9", 8785)) t2 = Thread(target=faSong()) t1 = Thread(target=jieShou()) t2.start() t1.start() udpSock.close()
这两个程序相互发送消息为什么接收不到呢
老师我电脑的处理器中是四核的这个没太大关系把
3到13号不是11个嘛?,但是设置最大生产是10个啊
视频中也是这样写的,为什么我这里报错,,,,,,
并发编程在平时的项目开发中会经常用到吗?一般什么时候要用到
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637