老师,没搞懂线程和进程有什么区别,为什么进程要用main限制启动条件,没看到他哪里会循环呀。
第七行是什么意思啊
老师 第15行和第17行存在的作用是什么
还是没明白端口号为撒会变
您好老师,这里能打印
print(f"账户:{self.account.name},余额是:{self.account.money}") print(f"账户:{self.account.name},总共取了:{self.expenseTotal}")
是因为,
draw1 = Drawing(80,a1) ;
draw2 = Drawing(80,a1)
导入了a1吗
老师,这个服务端给客户端发消息不应该是server_socket.send(msg.encode('gbk'))吗?
老师,这个数据编码格式我一直不太明白,这两个函数encode和decode是什么意思,gbk还有utf-8什么意思,什么时候使用啊
运行不出来,不知哪里出现了问题
from queue import Queue from time import sleep from threading import Thread def producer(): num = 1 while True: if queue.qsize() < 5: print(f'生产{num}号,大馒头') queue.put(f'大馒头:{num}号') num += 1 else: print('馒头框满了,等待来人消费') sleep(1) def consumer(): while True: print(f'获取馒头:{queue.get()}') sleep(1) if __name__ == '__main__': queue = Queue() t1 = Thread(target=producer) t2 = Thread(target=consumer) t1.start() t2.start()
老师,那个qsize函数是什么意思,为什么我的程序超过五个了还在运行
我这是什么情况,老师,我不理解
老师这个数字格式化语句不加【0】为什么添加解码方式会报错
老师,现在啥情况,8888好像用不了了,有什么办法可以关掉它吗
老师可以讲解一下这个 self.account.money吗
TCP多线通信问题.docx
def recv_data(): while True: # 接收服务器端数据 recv_data = client_socket.recv(1024) recv_content = recv_data.decode('gbk') print(f"服务端说:{recv_content}") if recv_content == "end": print("结束接收消息") breakdef send_data(): while True: # 给服务端发消息 msg = input(">") client_socket.send(msg.encode('gbk')) if msg == "end": breakif __name__ == '__main__': client_socket = socket(AF_INET, SOCK_STREAM) client_socket.connect(("127.0.0.1", 8899)) t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() client_socket.close()
# coding=utf-8from socket import *from threading import Threaddef recv_data(): while True: recv_data = client_socket.recv(1024) recv_content = recv_data.decode('gbk') print(f"客户端说:{recv_content},来自{client_info}") if recv_content == "end": print("结束接收消息") breakdef send_data(): while True: msg = input(">") client_socket.send(msg.encode('gbk')) if msg == "end": print("结束发送消息!") breakif __name__ == '__main__': server_socket = socket(AF_INET, SOCK_STREAM) server_socket.bind(("127.0.0.1", 8899)) server_socket.listen(5) print("等待接收连接!") client_socket,client_info = server_socket.accept() print("一个客户端建立连接成功!") t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() t1.join() t2.join() client_socket.close() server_socket.close()
from multiprocessing import Process,Queue class MyProcess(Process): def __init__(self,name,mq): Process.__init__(self) self.name = name self.mq = mq def run(self): print(f"进程{self.name}开始") print(f"进程{self.name}从队列中取出{self.mq.get()}") self.mq.put(self.name) #print(f"进程{self.name}在队列中放入{self.mq.put(self.name)}") print(f"进程{self.name}结束") if __name__ == '__main__': mq = Queue() print("在队列中放入1,2,3") mq.put("1") mq.put("2") mq.put("3") q_list = [] for i in range(3): q = MyProcess(f"q{i}",mq) q.start() #q.join()
为什么q.join()注释掉会报错?不注释掉就不会报错?而且在循环中直接添加q.join(),何必费功夫去再设置一个空列表,再在循环中依次加入进程的类对象,然后在另一个循环中依次添加q.join(),这不多此一举吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637