从零开始撸python

Day 4:多线程聊天室

这个比较简单,用来练一下手,不过发现一个问题,多线程用while循环的时候,不论循环条件,CPU占用直接拉满,但用列表for循环却可以,应该是和操作系统原理有关,希望知道的大佬不吝赐教,哈哈~

聊天室A:

 1 from threading import Thread
 2 from socket import *
 3 
 4 
 5 #接收信息
 6 def recvData():
 7     msg=s.recv(1024)
 8     print("------------------->>:",msg.decode())
 9     print()
10 
11 
12 
13 #发送信息
14 def sendData():
15     info=input("-------------------<<:")
16     s.sendto(info.encode(),(ip,port))
17     print()
18 #---------------------------
19 ip="localhost" #对方ip
20 port=1003      #对方端口号
21 
22 s=socket(AF_INET,SOCK_DGRAM)
23 s.bind(("localhost",1004))
24 
25 tr=Thread(target=recvData)
26 ts=Thread(target=sendData)
27 
28 
29 tr.start()
30 ts.start()

聊天室B:

 1 from threading import Thread
 2 from socket import *
 3 
 4 #接收信息
 5 def recvData():
 6     msg=s.recv(1024)
 7     print("------------------->>:",msg.decode())
 8     print()
 9 
10 
11 
12 #发送信息
13 def sendData():
14     info=input("-------------------<<:")
15     s.sendto(info.encode(),(ip,port))
16     print()
17 
18 
19 #---------------------------
20 ip="localhost" #对方ip
21 port=1004      #对方端口号
22 
23 s=socket(AF_INET,SOCK_DGRAM)
24 s.bind(("localhost",1003))
25 
26 tr=Thread(target=recvData)
27 ts=Thread(target=sendData)
28 
29 tr.start()
30 ts.start()

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天第四天啦~发布博文多了限制,单纯记录也有限制呢,就是说快点学好技术叭

 

posted @ 2022-10-14 21:18  Alex-CTO  阅读(41)  评论(0)    收藏  举报