老师,这个怎么解决啊
如果是添加了锁,是不是程序又是串行执行了
老师,我对下面代码的state变量的作用不理解,不是设置了超过3秒门自动关闭吗,为什么在门关着的时候还设置state=0呢?
from time import sleep from threading import Thread from threading import Event from random import randint def door(): global state while True: if even.is_set(): print('门开着,可以通行。。。') sleep(1) else: state = 0 print('门关了!请刷卡!!!') even.wait() sleep(1) state += 1 if state > 3: print('超过3秒,门自动关闭!!') even.clear() def person(): global state num = 1 while True: if even.is_set(): print(f'门开着呢,{num}号人进入....') else: print(f'门关着,{num}号人刷卡进入....') even.set() state = 0 num += 1 sleep(randint(1,10)) if __name__ == "__main__": state = 0 even = Event() t1 = Thread(target=door) t2 = Thread(target=person) t1.start() t2.start()
from threading import Thread from time import sleep from threading import Event def car(): global count while True: if count % 5 != 0: print("车已到站,可以上车") sleep(1) count += 1 else: print("车开走了") sleep(6) count = 1 def person(): while True: if count % 5 != 0: print("大家可以上车了") sleep(1) else: print("等待") sleep(1) if __name__=="__main__": #count值来判断车是否已经到站 count = 1 t1 = Thread(target=car) t2 = Thread(target=person) t1.start() t2.start()
老师,我想请问一下,就是在运行五次以后,t1提示了车开走了,这里就只有一次,为什么t2要提示五次等待呢?
老师,请问并发编程里,这种循环结构是怎么执行呢,还是像之前一样,i=0把循环体执行完,再i=1,循环体中的语句从上往下执行完?
老师我感觉我死锁了
#coding=utf-8
为何一定要这个注释,没有会报错
老师,您好,想咨询一下,code.exe哪里可以下载?
图片在资源管理器中,但是图像打不开,请老师解释一下。
# coding=utf-8 from threading import Thread from queue import Queue from time import sleep def producer(): num = 1 while True: 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(maxsize=10) # 创建生产者线程 t1 = Thread(target=producer) # 创建消费者线程 t2 = Thread(target=consumer) # 开始工作 t1.start() t2.start()
老师为什么给mq = Queue(maxsize=10) 传进去最大容量为10的时候,会生产12个产品而不是10个
为什么运行结束这个程序还没有结束啊,输出哪里显示还在运行中
老师,是不是安装个gevent之前要先卸载greenlet。
第七行是什么意思啊
一脸懵逼,讲一大堆理论
#coding=utf-8 '''双向通信Socket之客户端 将控制台输入的信息发送给服务器端 读取服务器端的数据,将内容输出到控制台''' from socket import * tcp_client_socket=socket(AF_INET,SOCK_STREAM) tcp_client_socket.connect(('127.0.0.1',8888)) while True: msg=input(">") tcp_client_socket.send(msg.encode("gbk")) if msg=='end': break redata=tcp_client_socket.recv(1024) recv_data=redata.decode('gbk') print(f"服务器端说:{recv_data}") tcp_client_socket.close() # TCP双向持续通信 # 【示例】TCP:双向通信Socket之服务器端 #coding=utf-8 from socket import * tcp_server_socket=socket(AF_INET,SOCK_STREAM) tcp_server_socket.bind(('127.0.0.1',8888)) tcp_server_socket.listen(5) print("服务端已经启动,等待客户端连接!") tcp_client_socket,host=tcp_server_socket.accept() print("一个客户端建立连接成功!") while True: re_data = tcp_server_socket.recv(1024) re_content =re_data.decode('gbk') print(f"客户端说:{re_content},from:{host}") if re_content == 'end': break msg = input(">") tcp_server_socket.send(msg.encode("gbk")) tcp_client_socket.close() tcp_server_socket.close() 客户端运行输入报错 >121 Traceback (most recent call last): File "C:/Users/Administrator/Desktop/python代码练习/udp.py", line 68, in <module> redata=tcp_client_socket.recv(1024) ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。 这个是为什么啊
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637