标签:线程 while sel 导入 inpu 发送消息 for __name__ thread
本章节将介绍主线程与子线程的关系;使用udp利用多线程在python环境下实现全双工通信代码的两种实现。(未完待续。。。)
一、主线程与子线程的关系:
1,若主线程无代码执行,主线程将等待子线程结束而结束。
2,线程的运行并无先后顺序。
3,若主线程因特殊原因先结束,子线程也同时结束。
4,只有当用Thread创建出来的实例对象,被start方法调用时,才会创建线程并运行。
二、代码如下:
1,自定义类对象实现:
import socket
#导入多线程模块
import threading
#定义udp通信类对象
class UDP_TALKER(object):
def __init__(self):
self.udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
self.udp_socket.bind((‘‘,8880))
def send(self):
while True :
message = input(‘请输入发送消息:‘)
self.udp_socket.sendto(message.encode(‘utf-8‘),(‘‘,8881))
def recv(self):
while True :
info = self.udp_socket.recvfrom(1024)
print(info[0].decode(‘utf-8‘))
def run_forever(self):
# threading.Thread(target = 函数名,args = (元组参数))
#返回实例对象,创建线程
t1 = threading.Thread(target = self.send)
t2 = threading.Thread(target = self.recv)
#调用线程
t1.start()
t2.start()
def main():
udp_talker = UDP_TALKER()
udp_talker.run_forever()
if __name__ == ‘__main__‘:
main()
标签:线程 while sel 导入 inpu 发送消息 for __name__ thread
原文地址:https://www.cnblogs.com/njhbk/p/9986626.html